Einzelnen Beitrag anzeigen

Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Warum keine dynamischen Arrays in Records möglich

  Alt 16. Feb 2009, 20:38
Hier mal eine Basis zum erweitern (ohne Try...finally und with * do) zum besseren Verständnis:
Delphi-Quellcode:
    // Record mit Inhalt füllen
    [...]
    DateiRec.InhaltCount := Length(DateiRec.Inhalt);

    // Datei anlegen/öffnen -> Varianten zum Öffnen siehe Hilfe
    FileStream := TFileStream.Create('F:\Worktemp\MyFile.dat',fmCreate or fmShareExclusive);

    // Header schreiben
    FileStream.Write(DateiRec.Name,SizeOf(DateiRec.Name));
    FileStream.Write(DateiRec.Copyright,SizeOf(DateiRec.Copyright));
    FileStream.Write(DateiRec.Autor,SizeOf(DateiRec.Autor));
    FileStream.Write(DateiRec.InhaltCount,SizeOf(DateiRec.InhaltCount));

    // Body schreiben
    for i := 1 to DateiRec.InhaltCount {Length(DateiRec.Inhalt)} do
      FileStream.Write(DateiRec.Inhalt[i-1], SizeOf(TInhalt));
FileStream.Free schießt danach die Datei, aber das machst ja im finally Block. Lesen im Prinzip umgekehrt, also der High-Wert der for Schleife durch Lesen des "Header" ermitteln.

PS: wenn ich das so sehe, evtl .Name in .AutorName ändern.
  Mit Zitat antworten Zitat