![]() |
Datei wird beim erstellen gelöscht
ich benutze TFileStream, um einen text in eine datei zu schreiben.
jedesmal, wenn ich TFielStream.create aufrufe, wird die datei aber gelöscht. mein System: delphi7 mit WinXP. hier der code:
Delphi-Quellcode:
irgendeine lösung?
procedure TFoRemotetest.IBSQLMonitorSQL (EventText: string; EventTime: TDateTime);
var FileName: string; EventStream: TStringStream; FileObj: TFileStream; begin FileName := 'D:\db_i.log'; EventStream := TStringStream.Create(EventText); FileObj := TFileStream.Create (FileName, fmCreate); FileObj.CopyFrom(EventStream,0); FileObj.Free; end; gruessle |
Re: Datei wird beim erstellen gelöscht
Zitat:
|
Re: Datei wird beim erstellen gelöscht
die OH sagt für fmCreate:
Zitat:
|
Re: Datei wird beim erstellen gelöscht
Zitat:
Delphi-Quellcode:
procedure TFoRemotetest.IBSQLMonitorSQL (EventText: string; EventTime: TDateTime);
var FileName: String; Handle: Integer; begin FileName := 'D:\db_i.log'; if FileExists(FileName) then Handle := FileOpen(FileName, fmOpenReadWrite) else Handle := FileCreate(FileName); if Handle <> -1 then begin FileSeek(Handle, 0, 2); FileWrite(Handle, EventText[1], Length(EventText)); FileClose(Handle); end; end; |
Re: Datei wird beim erstellen gelöscht
servus Sprint
deine Lösung ist auch schön. aber ich liebe streams und ich liebe objekte und ich liebe exceptions. jedem das seine, mir das meiste... P.S. die lösung meines problems:
Delphi-Quellcode:
gruessle
procedure TFoRemotetest.IBSQLMonitorSQL (EventText: string; EventTime: TDateTime);
var FileName: string; EventStream: TStringStream; FileObj: TFileStream; begin FileName := 'D:\db_i.log'; EventStream := TStringStream.Create (EventText); try FileObj := TFileStream.Create (FileName, fmOpenReadWrite or fmShareDenyNone); except FileObj := TFileStream.Create (FileName, fmCreate or fmShareDenyNone); end; FileObj.Seek (FileObj.Size, soFromBeginning); FileObj.CopyFrom (EventStream, 0); FileObj.Free; end; |
Re: Datei wird beim erstellen gelöscht
Sollte die Datei nicht existieren, dann wird FileObj zweimal erstellt, aber nur einmal freigegeben.
|
Re: Datei wird beim erstellen gelöscht
Zitat:
MfG Binärbaum |
Re: Datei wird beim erstellen gelöscht
hier nun eine mischung aus allen vorschlägen:
Delphi-Quellcode:
hier dürfte alles OK sein...
procedure TFoRemotetest.IBSQLMonitorSQL (EventText: string; EventTime: TDateTime);
var FileName: string; EventStream: TStringStream; FileObj: TFileStream; begin FileName := 'D:\db_i.log'; EventStream := TStringStream.Create (DateTimeToStr (EventTime) + EventText + ''#13#10''); if FileExists (FileName) then FileObj := TFileStream.Create (FileName, fmOpenReadWrite or fmShareDenyNone) else FileObj := TFileStream.Create (FileName, fmCreate or fmShareDenyNone); try FileObj.Seek (FileObj.Size, soFromBeginning); FileObj.CopyFrom (EventStream, 0); finally FileObj.Free; end; EventStream.Free; end; |
Re: Datei wird beim erstellen gelöscht
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz