eXistence
2004-08-19, 15:42:06
hi, ich friemel mich gerade in Delphi ein und will einen Integer-Wert in einer Datei speichern.
Die Prozedur sieht so aus:
procedure TMKonv.IntToMartes(iAusgabe : integer; sM_file : string; iFilePos : Longint);
begin
AssignFile(fSIMartes, sM_file);
if FileExists (sM_file) then Reset(fSIMartes)
else Rewrite (fSIMartes);
seek(fSIMartes, iFilePos);
showmessage('Größe von $iAusgabe in Bytes: '+ IntToStr(SizeOf(iAusgabe)));
write (fSIMartes, iAusgabe);
closefile (fSIMartes);
end;
Das Problem ist, dass nicht das gespeichert wird, was soll. Ich lass mir vorher extra die Größe der Var iAusgabe anzeigen und sie belegt ordnungsgemäß 4 byte. Die erzeugte datei ist aber nur 2 byte groß :(
Wo liegt mein fehler?
PS: aufgerufen wird es z.B. so: (dürfte aber eher weniger wichtig sein...)
iTestVar := 2147483647;
IntToMartes(iTestVar, sMartesheader, 0);
sMartesheader ist der Dateiname... und die Null gibt die Position an, an der der Wert plaziert werden soll.
Die Prozedur sieht so aus:
procedure TMKonv.IntToMartes(iAusgabe : integer; sM_file : string; iFilePos : Longint);
begin
AssignFile(fSIMartes, sM_file);
if FileExists (sM_file) then Reset(fSIMartes)
else Rewrite (fSIMartes);
seek(fSIMartes, iFilePos);
showmessage('Größe von $iAusgabe in Bytes: '+ IntToStr(SizeOf(iAusgabe)));
write (fSIMartes, iAusgabe);
closefile (fSIMartes);
end;
Das Problem ist, dass nicht das gespeichert wird, was soll. Ich lass mir vorher extra die Größe der Var iAusgabe anzeigen und sie belegt ordnungsgemäß 4 byte. Die erzeugte datei ist aber nur 2 byte groß :(
Wo liegt mein fehler?
PS: aufgerufen wird es z.B. so: (dürfte aber eher weniger wichtig sein...)
iTestVar := 2147483647;
IntToMartes(iTestVar, sMartesheader, 0);
sMartesheader ist der Dateiname... und die Null gibt die Position an, an der der Wert plaziert werden soll.