Herzlich willkommen in der Delphi-PRAXiS, TN0.
FORTRAN oder COBOL - genau so sieht das Datenmaterial aus. Wenn ich solche Daten mit Pascal im Batch-Modus verarbeiten müsste, dann würde ich mir auch record types deklarieren. Zusätzlich würde ich mir für jeden record type einen passenden pointer type deklarieren:
Delphi-Quellcode:
type
PMyDaten = ^TMyDaten;
TMyDaten = packed record
Auftr : array[0..9]of char; //Auftragsnummer
// ...
SchaHohe: array[0..7]of char; //Schaufelhöhe
end;
Jetzt kann ich die Daten zeilenweise verarbeiten:
Delphi-Quellcode:
procedure TDemoForm.Button3Click(Sender: TObject);
var
tf: TextFile;
MyDaten: PMyDaten;
line, s, fmt:
String;
i: Integer;
begin
AssignFile(tf, '
c:\daten\dp\tno.test.txt');
Reset(tf);
ReadLn(tf, line);
MyDaten := Addr(line[1]);
i := StrToInt(Trim(MyDaten.Dum2)) + 1;
fmt := Format('
%%%dd', [SizeOf(MyDaten.Dum2)]);
s := Format(fmt, [i]);
Move(s[1], MyDaten.Dum2, Length(s));
ShowMessage(line);
CloseFile(tf);
end;
Sollte keine Batch-Verarbeitung stattfinden, dann würde ich wohl eher Klassen anstelle von Records deklarieren.
Freundliche Grüße vom marabu