Hallo Jan,
die wichtigste Antwort hat Dir wohl Klaus schon gegeben:
Delphi-Quellcode:
while not eof(f) do
begin
read(f, Datensatz[i]);
inc(i);
end;
Bei Deiner Lösung (for i:=0 to 99999....) hast immer das Problem, daß eine teilweise beschädigte Datei das Lesen unmöglich macht.
Mir behagt die Definition des records nicht
Delphi-Quellcode:
tSNr = string[5];
tName = string[20];
tVorname = string[15];
tGebDat = string[10];
tGebOrt = string[15];
tOrt = string[15];
tKlasse = string[4];
tSchueler = record
Nr :tSNr; //Schuelernummer bzw. Datensatznummer
Name :tName; //Schuelername
Vorname :tVorname; //Schuelervorname
Geburtsort :tGebOrt; //Geburtsort
GebDat :tGebDat; //Geburtsdatum
Ort :tOrt; //Wohnort
Klasse :tKlasse; //Klasse
end;
Ich würde mit fixen Satzlängen arbeiten:
Delphi-Quellcode:
tSNr = Array of Char[1..5];
tName = Array of Char[1..20];
tVorname = Array of Char[1..15];
tGebDat = Array of Char[1..10];
tGebOrt = Array of Char[1..15];
tOrt = Array of Char[1..15];
tKlasse = Array of Char[1..4];
tSchueler = record
Nr :tSNr; //Schuelernummer bzw. Datensatznummer
Name :tName; //Schuelername
Vorname :tVorname; //Schuelervorname
Geburtsort :tGebOrt; //Geburtsort
GebDat :tGebDat; //Geburtsdatum
Ort :tOrt; //Wohnort
Klasse :tKlasse; //Klasse
end;
Wobei allerdings ein leerer Datensatz und ein mit Leerzeichen gefüllter Datensatz nicht zu unterscheiden wären.
(Ok da kann man noch eine #0 als Begrenzer einsetzen, verliert aber ein Datenzeichen)
Wenn Du dann noch ein #13#10 als Abschluß Deines Records hinein packst, ist die Datei problemlos mit jedem Editor les- und kontrollierbar.
Gruß
K-H