Hallo nach langem hin u. her probieren frage ich doch nun einmal hier im Forum.
Ich möchte in einer bestehenden .txt Datei einen Parameterwert überschreiben.
D.h. für mich nach dem Schlüsselwort config.serial suchen und das dahinter überschreiben.
Ich habe die Datei einmal angehängt (Ausschnitt).
config.serial comxxxx
Dieses com soll mit dem richitgen Wert ersetzt werden.
Wie suche ich nun genau nach der Stelle und überschreibe auch genau dies?
Wie ich den Pfad der .txt Datei definieren muss ist klar.
Vielen Dank schon einmal
Eine Stelle in einem txt-File überschreiben, dass ist so eine Sache. Wenn du jetzt ein Byte mehr oder weniger schreibst, dann zerstörst du dir deinen ganzen txt-File.
Ich würde mich an deiner Stelle mit den Config-File-VIs beschäftigen. Da erledigt die dahinterliegende Library für dich, wenn du einen Schlüssel/Key ersetzt.
Gruß, Jens
Hallo Jens
dass Problem ist das die Config.txt Datei nicht geändert werden kann, da sie für mehrere Applikationen erstellt wurde...
leider
Das mit dem Configfile habe ich mir bereits angesehen.
Nur ist eben die vorhanden Parameterdatei schon so...
Dann wäre mein Vorgehen:
- die gesamte Datei einlesen, am besten so, dass jede Zeile in einem Array of String landet.
- die nötigen Änderungen machen (In For/While-Schleife nach dem Key-Wort suchen, dann diesen String entsprechend ersetzen).
- die gesamte Datei wieder (im Replace-Modus) schreiben.
Gruß, Jens
Ok, danke mal vorerst, ich werd mal schauen ob ich das irgendwie gebacken bekomme.
Schönes Wochenende
Da hab ich mal angefangen und wurde unterbrochen... ^_^
Aber jetzt hab ich mir nochmal 10 Minuten Zeit genommen und das kommt dabei raus:
[
attachment=26129]
[
attachment=26127][
attachment=26128]
EDIT ON
Das Überprüfen der Größe des Change-Arrays solltest du weglassen. Der Gedanke dahinter war gut, doch wenn das Array leer ist und noch Textzeilen kommen, werden die verschluckt.
EDIT OFF
Ich bin einfach mal davon ausgegangen, dass wenn du einen Wert ändern willst... willst du bestimmt auch mal mehrere ändern.
Das Überschreiben der original Datei musst du noch programmieren.
Gruß SeBa
PS:
Ich würd dir empfehlen immer ein Backup der original Datei zu machen. Dann kannst du immer zur letzten Version gehen, falls was schief läuft.
Hallo zusammen,
ich habe jetzt einmal das Prg. von SeBa weiterentwickelt, siehe Anhang.
(die For-Schleifenbedingung geht in 8.6 nicht, deswegen While)
Funktioniert soweit, was noch nicht einwandfrei ist, ist dass wenn ein Therm ersetzt wird es mit dem Seitenumbruch irgendwie
Probleme bereitet. An was kann es noch liegen...
Du beendest deinen ersetzten String mit einer Wagenrücklauf-Konstanten.. du meinst aber eine Wagenrücklauf&Zeilenvorschub-Konstante.
Gruß SeBa
Aha ok,
habe es nun angepasst...
Was mir noch aufgefallen ist, wenn ich com6 reinschreibe, bleibt am Schluss des txt files nach der Bearbeitung ein Rest.
Das sind noch die letzten Stellen des alten Files, wie kann ich zuerst alles löschen und dann aus dem Array reinschreiben?
' schrieb:(die For-Schleifenbedingung geht in 8.6 nicht, deswegen While)
Natürlich geht das in 8.6, das war eine der Neuerungen bei dieser LV-Version:
[
attachment=26168]
Gruß, Jens