Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
22.09.2024, 18:15 (Dieser Beitrag wurde zuletzt bearbeitet: 22.09.2024 22:13 von Mechatroniker28.)
ich stehe vor einem Problem bei der Verarbeitung einer Log-Datei und hoffe auf eure Unterstützung.
Ich lese eine Log-Datei ein und ersetze darin bestimmte Zeilen durch vordefinierte Strings. Grundsätzlich funktioniert das Ersetzen wie gewünscht, allerdings stellt sich folgendes Problem: Zunächst werden alle Zeilen ohne Änderungen eingelesen, erst danach erfolgt die Ersetzung der gewünschten Zeilen. Dies führt dazu, dass die Datei am Ende doppelt so groß ist wie ursprünglich. Ich vermute, dass die Datei zweimal geschrieben wird, ohne die ursprünglichen Inhalte zu überschreiben, aber ich kann den Fehler in meinem Code nicht finden.
Könnt ihr mir eventuell helfen, den Grund für dieses Verhalten zu identifizieren?
Vielen Dank im Voraus!
Beste Grüße
Anzeige
22.09.2024, 22:16 (Dieser Beitrag wurde zuletzt bearbeitet: 22.09.2024 23:05 von Mechatroniker28.)
Zitat:Zunächst werden alle Zeilen ohne Änderungen eingelesen, erst danach erfolgt die Ersetzung der gewünschten Zeilen. Dies führt dazu, dass die Datei am Ende doppelt so groß ist wie ursprünglich. Ich vermute, dass die Datei zweimal geschrieben wird, ohne die ursprünglichen Inhalte zu überschreiben, aber ich kann den Fehler in meinem Code nicht finden.
Ich kann es leider in deinem Code auch nicht sehen, da ich LV2019 bevorzuge…
(Wenn du jetzt mit LV2020 arbeitest, könntest du bitte dein Profil anpassen!)
Zu deiner Frage:
Schließt du die Datei nach dem EInlesen?
Öffnest du die Datei zum Schreiben erneut - und setzt dann auch explizit den Modus "Create or Replace"?
Oder manipulierst du explizit die Datei, sodass die Filegröße auf 0 Byte gesetzt wird und du den FilePosition-Pointer auf "0 Byte vom Anfang" setzt?
(22.09.2024 18:15 )Mechatroniker28 schrieb: Könnt ihr mir eventuell helfen, den Grund für dieses Verhalten zu identifizieren?
Guten Morgen,
hast du mal vorher und nachher verglichen? Oder das gleiche mit einer kleinen Datei (2 Zeilen) durchlaufen lassen?
Das 2te war zumindest mein Versuch und damit hab ich festgestellt, dass 'Write to text file' den Text hinten anhängt.
Vorschlag: Die geänderte Datei unter einem neuen Namen speichern ( 'Open File' mit 'Create' ).
Alternativ die Datei originaldatei verscheiben und eine neue mit dem gleichen Namen erstellen:
"Auch aus Steinen, die einem in den Weg gelegt werden, kann man Schönes bauen."
Johann Wolfgang von Goethe
23.09.2024, 08:51 (Dieser Beitrag wurde zuletzt bearbeitet: Heute 09:35 von Mechatroniker28.)