Protokoll in Textdatei schreiben mit StringListe.



  • |23| schrieb:

    ach ja und hast du ne idee wie ich das mache das das logfile in einem ordner Lodfiles gespeichert wird ? // da wo die Exe datei ist antürlich...

    const AnsiString FileName = "\\LogFiles\\test.log"; // Falsch
    

    versuchs mal mit

    const AnsiString FileName = ExtractFilePath(Application->ExeName) + "\\LogFiles\\test.log";
    

    wenn du jeden Tag eine neue Datei machen willst solltest du jeden Tag einen neuen Dateinamen festlegen, z.B. wie Joe_M. als Beispiel schrieb: 20040914.log (JahrMonatTag.log)

    die Frage ist natürlich erstmal:
    Startest du das Programm jeden Tag neu oder läuft das dauerhaft?

    im ersten Fall kannst du einfach beim Starten eine neu Log-Date erstellen
    im zweiten Fall könnte man das mit nem Timer machen, aber dazu gabs schon nen ähnlichen Thread

    Grüße
    Linnea



  • Ich habe es bei mir so gemacht, dass ich vor dem Schreiben die Größe der Zieldatei auslese. Wenn die Datei größer als 500KB ist, benenne ich sie um. Wenn das Programm dann zum Schreiben kommt, erstellt er dann eine neue Datei.



  • wie kann ich die Ziel größe ermitteln ?



  • Zielgröße? Ach so.

    Du hast es ja leicht: Du kannst ja einfach die Länge vom StringListentext vom Einlesen nehmen. Ansonsten gibts ja noch die Suchfunktion... 🙂



  • gibt es ne möglichkeit wenn die Datei nicht da ist das er Sie einfach erstellt ?

    den :

    AnsiString FileName = ExtractFilePath(Application->ExeName) + "\\LogFiles\\test4.log";
    

    geht nur wenn die Datei in dem Ordner ist.



  • Bei SaveToFile() erstellt er die Datei neu, wenn sie nicht da ist... Sollte mich doch sehr wundern, wenn es bei dir anders wäre.



  • Plemplem schrieb:

    Zielgröße? Ach so.

    Du hast es ja leicht: Du kannst ja einfach die Länge vom StringListentext vom Einlesen nehmen. Ansonsten gibts ja noch die Suchfunktion... 🙂

    das hört sich im ersten Moment gut an hab es umgesetzt und hab das problem nun wenn die 2 datei da ist wird die ja ned mehr getestet ob sie voll ist es wird immer auf die erste geguckt...

    ggrrrrr



  • Deswegen solltest du ja die große Datei umbenennen...



  • Wie kann ich den Dateinamen das Aktuelle Datum zuweißen ?



  • Now() gibt einen TDateTime-Wert zurück. Mit FormatDateTime oder so kannste dann die Werte in nen String packen, aus dem du dann nen Dateinamen machen kannst.


Anmelden zum Antworten