Erstmal Danke für die Hilfe bisher. Ich glaub ich habs bald.
Aber so ganz klappts noch ni bei mir. Hier mal mein Quellcode:
** Typdefinitionen **
Delphi-Quellcode:
type
currListData = record
s1 : string [255];
s2 : string [80];
s3 : string [40];
s4 : string [50];
s5 : string [4];
b1 : byte;
end;
currListEntry = record
s1 : string [80];
s2 : string [40];
s3 : string [20];
s4 : string [255];
b1 : byte;
b2 : byte;
b3 : byte;
b4 : byte;
end;
currList = record
data : currListData;
count : integer;
entries : array of currListEntry;
end;
und nun meine 2 Funktionen:
Delphi-Quellcode:
function loadCurrList (fn : string; var cl:currList):boolean;
var f : TFileStream;
begin
loadCurrList := true;
try
f := TFileStream.Create (fn, 0);
f.Read(cl, Sizeof(cl) - Sizeof(Pointer));
SetLength(cl.entries, cl.Count);
f.Read(cl.entries^, cl.Count * Sizeof(currListEntry));
f.free;
except
loadCurrList := false;
end;
end;
function saveCurrList (fn : string; cl : currList):boolean;
var f : TFileStream;
begin
saveCurrList := true;
try
f := TFileStream.Create(fn, fmCreate);
cl.Count := Length(cl.entries);
f.WriteBuffer(cl, Sizeof(cl) - Sizeof(Pointer));
f.WriteBuffer(cl.entries^, Length(entries) * Sizeof(CurrListEntry));
f.Free;
except
saveCurrList := false;
end;
end;
Der Compiler liefert bei mir folgende Fehler bezüglich der Zeilen f.Read(c.entries^.... und f.WriteBuffer(cl.entries^.....
Zitat:
Fehler: Zeigertyp erwartet
Fehler: Inkompatible Typen
Fehler: Operator auf diesem Operandentyp nicht anwendbar
Ausserdem mußte ich den Befehl WriteBuffer nehmen, da bei WriteBlock die Antwort kam dies sei eine unbekannte Funktionen.
Hab ich was missverstanden?