Hallo.
Also ich bin schon ein Stück weitergekommen.
Ich lese die Textdatei in eine StringList ein und verarbeite diese dann.
Liste laden:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
sl := TStringList.Create;
sl.LoadFromFile('ADR_APO.UPD');
Memo1.Lines := sl;
end;
Verarbeiten:
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var i: integer;
zeile: string;
begin
DS.Open;
i := 0;
while i < sl.Count do begin
zeile := sl.Strings[i];
Memo2.Lines.Add(zeile);
if(zeile='00K') then begin
// Kopfdefinition
i := Lese_Kopf(i);
end else if(zeile='00F') then begin
i := Lese_Feld(i);
end else begin
Inc(i);
end;
end;
end;
Funktion um den Kopf zu lesen:
Delphi-Quellcode:
{** KOPF LESEN ****************************************************************}
function TForm1.Lese_Kopf(posi: integer): integer;
var i: integer;
s, s1, prefix, zeile: string;
begin
// BEGIN Kopf-Record lesen
for i := 1 to anzahl_felder_k do begin
Inc(posi);
zeile := sl[posi];
prefix := Copy(zeile,1,2);
s := Copy(zeile,3,length(zeile));
if( prefix='01') then begin
edF01.Text := s;
end else if( prefix='02') then begin
edF02.Text := s;
end else if( prefix='03') then begin
edF03.Text := s;
end else if( prefix='04') then begin
edF04.Text := s;
end else if( prefix='05') then begin
edF05.Text := s;
end else if( prefix='06') then begin
edF06.Text := s;
end else if( prefix='07') then begin
edF07.Text := s;
end else if( prefix='08') then begin
edF08.Text := s;
anzahl_tabelle_felder := StrToInt(s);
end;
result := posi;
end;
// END Kopf-Record lesen
end;
{******************************************************************************}
Für evtl. Verbesserungen bin ich immer offen.
Habe ja bisher noch nie mit solchen Files gearbeitet.
MfG, Ronny