ASCII-Datei einlesen

Wie kann man in Delphi Daten aus einer bereits bestehenden Datei einlesen, wobei die Daten durch ein Semikolon voneinander getrennt sind?

  1. Wie realisiert man den Zugriff auf die Datei?
  2. Wie können die Daten einzeln eingelesen und verarbeitet werden?

Danke für Tips, Anka.

  1. Wie realisiert man den Zugriff auf die Datei?

Ganz normal als Textdatei öffnen und Zeilenweise einlesen:

var
F: TextFile;
S: string;
begin
AssignFile(F, FileName);
Reset(F);
while not eof(F) do begin
Readln(F, S);
Parse(PChar(S));
end;
CloseFile(F);
end;

Parse dröselt die eingelesene Zeile auf:

  1. Wie können die Daten einzeln eingelesen und verarbeitet
    werden?

Jede gelesene Zeile mit StrScan auf das nächste Vorkommen der Trennzeichens (hier: Semikolon) prüfen. Wenn vorhanden, dann den Teilstring von der letzten bis zu aktuellen Position kopieren.

procedure Parse(S:String);
var n,m,a,b:stuck_out_tongue:Char;
begin
n := PChar(S);
m := StrEnd(n);
a := n;
repeat
b := StrScan(a,’;’);
if b=NIL then b := m;
copy(S,a-n,b-n) liefert den nächten Teil zur Weiterverarbeitung
a := b+1;
until b=m;
end;

Danke für Tips, Anka.

Jochen