Thema: Delphi Textdatei in Liste laden

Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Textdatei in Liste laden

  Alt 9. Sep 2009, 13:48
Ich bin im Moment krank geschrieben, von daher hab ich jede Menge Zeit
Also: wie der Name schon sagt, besteht eine typisierte Datei aus Datensätzen eines bestimmten Typs. Dieser ist im Normalfall als Record definiert. Beispiel:
Delphi-Quellcode:
type
  TMyRec = record
    Name: shortstring; //NICHT string, da sonst nur der Zeiger gespeichert würde
    Nummer: integer;
    ZahlmitKomma: double;
  end;

...

var MyFile: file of TMyRec; //file of Datentyp --> typisierte Datei
Will man nun z.B. ein Array of TMyRec abspeichern, kann man das so machen (Fehlerbehandlung mal außen vor gelassen):
Delphi-Quellcode:
AssignFile(MyFile,Dateiname);
//Datei überschreiben
Rewrite(MyFile);
//Jeden einzelnen Datensatz in Datei schreiben
for i := Low(MyRecArray) to High(MyRecArray) do
  write(MyFile,MyRecArray[i]);
CloseFile(MyFile);
Andersherum (Einlesen):
Delphi-Quellcode:
AssignFile(MyFile,Dateiname);
Reset(MyFile);
//Anzahl der Datensätze ermitteln und Arraygröße entsprechend setzen
SetLength(MyRecArray, FileSize(MyFile));
i := 0;
while not EOF(MyFile) do
  begin
    //aktuellen Datensatz einlesen
    read(MyFile,MyRecArray[i]);
    //Array-Index erhöhen
    inc(i);
  end;
CloseFile(MyFile);
Das war jetzt alles aus dem Kopf getippt, muss daher nicht unbedingt so funktionieren, aber ich hoffe, Du hast das Prinzip verstanden. AFAIK gibt es dazu auch ein Tutorial hier in der DP, wo Du noch einmal genauer nachlesen kannst.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat