Ich habe das Problem, dass mir die Funktion Rewrite(f) beim überschreiben den Error Code 183: "Cannot create a file when that file already exists." wirft. Geschrieben wird die Datei trotzdem korrekt.
Da die Funktion ja extra zum überschreiben von Dateien da ist, wundert mich der Fehler doch ein wenig.
Benutze Delphi 2005. Habe es auch schon ohne die beiden $IOChecks-Zeilen versucht.
ich benutze folgende Funtion (müsste hier aus dem Forum kommen, wenn mich nicht alles täuscht) zum schreiben der Datei:
Delphi-Quellcode:
function WriteData(filename : String; data: String; mode : TMode): Integer;
var
f: TextFile;
begin
{$IOChecks OFF}
AssignFile(f,filename);
if (FileExists(filename) and (mode = a) ) then
Append(f)
else
Rewrite(f);
//Hier ist GetLastError() = 183
Writeln(f, data);
CloseFile(f);
result := GetLastError();
{$IOCHECKS ON}
end;
Aufruf:
if SaveDialog1.Execute then
begin
err := WriteData(SaveDialog1.Filename, data, r);
if (err <> 0) then
Showmessage ('Errorcode: '+ inttostr(err)+#13#10+SysErrorMessage(err));
end;