AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Stream auslesen

Ein Thema von oehl · begonnen am 2. Jul 2013 · letzter Beitrag vom 2. Jul 2013
Antwort Antwort
oehl

Registriert seit: 2. Jul 2013
1 Beiträge
 
#1

Stream auslesen

  Alt 2. Jul 2013, 17:25
hallo,

ich möchte einen stream in zwei verschiedene listen einlesen und zwar so, dass die ungeraden Zeilenindex in Liste 1 und die geraden in Liste 2 stehen. Ich dachte so ungefähr

Delphi-Quellcode:
TDatensatz = packed record
        Liste1:Extended;
        Liste2:extended;

        end;
    TDatenarray = array of TDatensatz ;
var
time:smallint;
arr:TDatenarray;
index:byte;
werte:string;

begin
Stream1 := TFileStream.Create(Inputfile,fmOpenRead);
while stream1.Position < stream1.size do begin
            stream1.ReadBuffer(time, SizeOf(time));
arr[index].Liste1 = time;
stream.seek(2, soFromCurrent);
arr[index].Liste2 = time;
werte:=floattostr(arr[index].Liste1) + #9 + floattostr(arr[index].Liste2);
stream2.writebuffer(werte[1],length(werte);
inc(index);
end;
end;
das klappt aber nicht, ich hab auch wenig Erfahrung damit. Hat da jemand nen Tip?
  Mit Zitat antworten Zitat
Benutzerbild von MrMooed
MrMooed

Registriert seit: 18. Feb 2012
101 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Stream auslesen

  Alt 2. Jul 2013, 17:54
hey,

erstmal Willkommen in der DP

hallo,

ich möchte einen stream in zwei verschiedene listen einlesen und zwar so, dass die ungeraden Zeilenindex in Liste 1 und die geraden in Liste 2 stehen. Ich dachte so ungefähr

Delphi-Quellcode:
TDatensatz = packed record
        Liste1:Extended;
        Liste2:extended;

        end;
    TDatenarray = array of TDatensatz ;
var
time:smallint;
arr:TDatenarray;
index:byte;
werte:string;
[..]
Aus der Deklaration wird für mich nicht ersichtlich, was nun deine Liste (du meinst doch die Datenstruktur Liste ?) sein soll.

Generell könntest du dir mal genau ansehen, wie man aus einem Stream liest: Guckstu.
Danach könnte man es so machen:
Code:
nimm eine Laufvariable, die für jeden Datensatz um eins inkrementiert wird.
Falls dann für einen Datensatz '(i mod 2) = 0' gilt (also dass es sich um eine gerade Zahl handelt)
=> füge es in Liste1 ein, andernfalls in Liste2
das klappt aber nicht, ich hab auch wenig Erfahrung damit. Hat da jemand nen Tip?
Was genau klappt denn nicht? Kommt irgendwann eine AV? Meckert der Compiler? Hängt er in einer Endlosschleife?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz