Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#9

Re: Variable Records speichern

  Alt 16. Jan 2009, 07:36
jupp, dann kracht es.
aber ich glaub ich bin zu blind ... wo fehlt fa ein fs. ? nja, vieleicht wurde es auch schon korrigiert
Delphi-Quellcode:
procedure Save(x: TCDArchiv; Filename: String);
var fs: TFileStream;
     l: Integer;
begin
  fs := TFilestream.Create(Filename, fmCreate);
  try
    l := Length(x.Album);
    fs.Write(l, SizeOf(Integer));
    if l > 0 then fs.Write(x.Album[1], l);
   
    l := Length(x.Titel);
    fs.Write(l, SizeOf(Integer));
    if l > 0 then fs.Write(x.Titel[1], l);
   
    l := Length(x.Songs);
    fs.Write(l, SizeOf(Integer));
    if l > 0 then fs.Write(x.Songs[1], l);
  finally
    fs.Free;
  end;
end;
lesen dann so:
Delphi-Quellcode:
fs.Read(l, SizeOf(Integer));
SetLength(x.Album, l);
if l > 0 then fs.Read(x.Album[1], l);
man könnte zwar auch mit Pointern rumjonglieren, aber empfehlen würde ich den Meisten dann doch die variante mit dem IF.
Delphi-Quellcode:
l := Length(x.Album);
fs.Write(l, SizeOf(Integer));
fs.Write(PChar(x.Album)^, l);
wer ist eigentlich auf die blöde Idee gekommen die Read/Write-Funktionen nur per Var-Parameter zu basteln
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat