Log Datei
-
Hi ich bekomme es einfach nicht hin eine Log-DAtei zu erstellen mit DAtum und eine Festvordefinierten TExt!!!
kann mir da jemand weiter helfen???
Benutze den Borland c++ Builder 6 und die Log DAtei sollte in einer *.Txt geschriebn werden so das sie immer erweitert wird!!!
Welcehe Headars?,welcher Befehl?, mit Ansi?, oder ListBox?
-
schon mal mit WriteFile versucht?
in die Datei die du in WriteFile definierst kannst du dann z.B.: den Text eines Memofeldes reinschreiben lassen, wobei du mit Memo1->Add("text"); neue Zeilen hinzufügst.
Und für's datum könntest du dir doch ne TDateTime Datum; Variable definieren der du immer kurz vorm schreiben Datum=Now(); zuweist.noch fragen?
mfg
Tom
-
TFileStream
-
auch TStringList eignet sich dazu ich habe da eine kleine Logbuchklasse, recht simpel aber ausreichend für deine Bedürfnisse denke ich.
-
Kevinus schrieb:
ich habe da eine kleine Logbuchklasse, recht simpel aber ausreichend für deine Bedürfnisse denke ich.
Könntest du die hier den mal reinschreiben also ich wäre dir sehr dankbar dafür!!!
-
So dann hier die Header LogMessageFile.h
//============================================================================== #ifndef LogMessageFileH #define LogMessageFileH //============================================================================== #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ExtCtrls.hpp> #include <ComCtrls.hpp> #include <Graphics.hpp> //============================================================================== class TLogMessageFile { private: TStringList *Ereignisliste; public: void __fastcall AddLogMessageFile(String Ereignis); void __fastcall EndLogMessageFile(String ProgrammName); void __fastcall ClearLogMessageFile(); void __fastcall SaveLogMessageFile(String Name); __fastcall TLogMessageFile(String ProgrammName); }; //============================================================================== #endifUnd hier die LogMessageFile.cpp
//============================================================================== #pragma hdrstop #include <vcl.h> #include "LogMessageFile.h" //============================================================================== __fastcall TLogMessageFile::TLogMessageFile(String ProgrammName) { Ereignisliste=new TStringList; Ereignisliste->Add("Logdatei "+ProgrammName); Ereignisliste->Add("==========================================="); } //============================================================================== void __fastcall TLogMessageFile::AddLogMessageFile(String Ereignis) { Ereignisliste->Add(Ereignis); } //============================================================================== void __fastcall TLogMessageFile::ClearLogMessageFile() { Ereignisliste->Clear(); } //============================================================================== void __fastcall TLogMessageFile::EndLogMessageFile(String ProgrammName) { Ereignisliste->Add("Programm wird beendet..."); Ereignisliste->Add("==========================================="); Ereignisliste->Add(ProgrammName+" beendet"); } //============================================================================== void __fastcall TLogMessageFile::SaveLogMessageFile(String Name) { Ereignisliste->Add("==========================================="); Ereignisliste->Add("Logfile abgeschlossen"); Ereignisliste->SaveToFile(Name); } //==============================================================================Also ist recht simpel aber sollte eigentlich für einfache Programme ausreichen.
Hab ich aber auch schon vor einiger Zeit in meinen Anfangszeiten von c++ geschrieben. Also nicht so böse werden wenn es formliche Fehler gibt, ja ?
-
Das Problem dürfte eher sein, dass wenn das Programm crashed, das Logfile nicht mehr auf die HDD geschrieben wird.
-
Naja stimmt vll setze ich mich nochmal dran, dass ganze so zu schreiben, das es sich immer temporär zwischenspeichert mit einer Funktion.
-
Womit wir dann wieder bei Jansens Vorschlag wären: TFileStream.
-
vll könnte man es aber mit einer zusätzlichen Funktion die das ganze saved machen, aber auf die abschlussstrings wie in der Save und EndLogMessageFile Funktion verzichten, somit könnte man das immer speichern wenn man will, ohne aber das Log zu schließen.
-
Log sollten sofort gespeichert werden und net nach Programm Ende.
-
Da habt ihr recht ich habe das ganze jetzt mit Ansi Strings gemahct ein Kollege von mir hatte da was im Netz gefunden das funktioniert bestens mit DAtum und ZEit und so!!!
Also Leute auf jeden Fall danke für eure unterstützung!!!