[C++Builder] Inhalt einer Logdatei austauschen



  • Hallo zusammen,

    ich habe eine Logdatei die ich gerne bei einer gewissen Größe löschen und den Inhalt aber vorher in eine andere Logdatei kopieren möchte.

    Meine Frage ist jetzt, ob ich die erste Datei auslesen muss dann diesen Inhalt in die 2.Datei kopiere und dann die 1. erst löschen?
    oder

    ob es schon eine vordefinierte Funktion gibt, die mir den Inhalt einer Datei in die andere reinkopiert?!

    Danke für die Antworten!

    Gruß



  • Warum benennst du die erste Datei nicht einfach um (z.Bsp. mit RenameFile) und öffnest dann die Alte neu zum Schreiben.



  • Ich möchte gerne dieses Verfahren öffters durchführen und hab keine Lust laufen die Dateien umzubenennen.

    Es ist zwar möglich, aber ich würde gerne meine Methode umsetzen!

    Weißt da/ihr dafür eine Lösung??

    Danke



  • Üblicherweise benennt man die Datei mit Datum und Uhrzeit um.
    Das hat den Vorteil man kennt die Reihefolge der Dateien und kann gezielt suchen. Was willst du denn anders machen:

    - Der Kopiervorgang kostet Zeit. Stelle mir so mal mehrere GB vor. Was ist mit in dieser Zeit auflaufenden Logeinträgen?

    - Du musst dir auch ein System zur Ordnung der Sicherungen überlegen -> Datum und Uhrzeit hat sich bewährt.

    Und sorry was willst du machen:

    muss dann diesen Inhalt in die 2.Datei kopiere und dann die 1. erst löschen?

    Den Inhalt der 1. in die 2. kopieren und dann löschen? Was ist damit gewonnnen? Die zweite ist sofort so groß wie die 1. ??? Das klingt irgendwie unlogisch.



  • Sorry, ich erkläre es nochmal neu.

    Ich habe eine Logdatei. Die schreibe ich mit verschiedenen Sachen voll. Wenn sie, sagen wir mal ca. 950 MB groß ist, dann soll der Inhalt dieser Datei in eine zweite Datei geschrieben werden. Diese ist dann zur Historie gedacht.
    Der Inhalt der ersten Datei soll jetzt aber komplett gelöscht werden, damit ich wieder in diese Datei meine Protokolle reinschreiben kann.

    Wenn jetzt die normale Logdatei wieder voll ist (ca. 950 MB), dann soll der Inhalt der Historien-Datei gelöscht und mit dem Inhalt der Logdatei gefüllt werden, damit es immer diesen Kreislauf nimmt.

    Ich habe mir gerade überlegt, dass ich eigentlich die Historien-Datei komplett löschen kann und dann die Logdatei einfach wieder als Historien-Datei abspeicher und da fällt mir auf, dass das doch genau eure Überlegung war, oder 🙄

    Kann mir jemand von euch trotzdem sagen, wie ich das jetzt aber mit eurer Methode lös (Quellcode??)

    Vielen Dank



  • schau dir TStream an.. den Quellcode darfst du dir ruhig selber zusammenstellen 😉



  • Wie schreibst du denn in die Logdatei? Ansonsten folgender Ablauf

    in Datei schreiben
    wenn Grenze erreicht schliessen
    Datei umbenennen mit RenameFile (falls der neue Name schon existiert vorher löschen mit DeleteFile)
    Datei neu öffnen



  • Du brauchst nur die Funktionen DeleteFile und RenameFile aus den SysUtils. Such mal in der Hilfe danach...



  • Danke hab es geschafft!

    War garnicht so kompliziert wie ich gedacht hatte.

    Danke


Anmelden zum Antworten