Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Verarbeitung einer strukturierten Textdatei

  Alt 10. Apr 2006, 16:20
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
  Mit Zitat antworten Zitat