Einzelnen Beitrag anzeigen

Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#1

Packed Record schnell in Datei speichern

  Alt 2. Aug 2004, 13:03
Ich hab z.B. folgenden Record:

Delphi-Quellcode:
  Verwaltungsdatei_Header = packed record
    aDatentraeger_Nummer: string[3];        // 1
    xFuellzeichen1: string[3];        // 4
    aBeraternummer: string[7];        // 7
    aBeratername: string[9];        // 14
    xRestart_Kennzeichen: Char;        // 23
    nAnzahl_Datendateien: string[5];    // 24
    nLetzte_Datendateinummer: string[5];    // 29
    xFuellzeichen2: string[95];    // 34
  end;
Nachdem ich ihn gefüllt habe speicher ich ihn so ab:

Delphi-Quellcode:
procedure TFrmMain.Button1Click(Sender: TObject);
var
  ft : TFileStream;
  TF : TextFile;
  FileName:string;
begin
  // Record mit daten füllen
  Fill_Verwaltungsdatei_Header;
  // Datei erstellen und öffnen
  FileName := Edit1.Text + '\EV01';
  AssignFile(TF,FileName);
  Rewrite(TF);
  CloseFile(TF);
  // Daten aus dem Record in die Datei schreiben
  ft := TFileStream.Create(FileName,fmOpenWrite);
  try
    with Verwaltungsdatei_Header do
    begin
      ft.Write(aDatentraeger_Nummer[1],SizeOf(aDatentraeger_Nummer)-1);
      ft.Write(xFuellzeichen1[1],SizeOf(xFuellzeichen1)-1);
      ft.Write(aBeraternummer[1],SizeOf(aBeraternummer)-1);
      ft.Write(aBeratername[1],SizeOf(aBeratername)-1);
      ft.Write(xRestart_Kennzeichen,SizeOf(xRestart_Kennzeichen));
      ft.Write(nAnzahl_Datendateien[1],SizeOf(nAnzahl_Datendateien)-1);
      ft.Write(nLetzte_Datendateinummer[1],SizeOf(nLetzte_Datendateinummer)-1);
      ft.Write(xFuellzeichen2[1],SizeOf(xFuellzeichen2)-1);
    end;
  finally
    ft.free;
  end;
end;
Das ist jedoch sehr umständlich, da ich bei jedem record jedes einzelne Feld einzeln speichern muss. Wie kann ich das automatisieren???
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat