TXT Datei Zeile Lesen und Ersetzen Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

JanWirrol
Posts: 7
Joined: 21 May 2021, 11:42

TXT Datei Zeile Lesen und Ersetzen

Post by JanWirrol » 22 May 2021, 08:04

Moin Moin.
Brauche mal hilfe bzw Lösungsvorschläge.
Ich habe eine TXT Datei welche 5 Zeilen besitzt. Jede Zeile hat eine Zahl die von 0-99 ist.
Nun Würde ich gerne z.B. Zeile 3 Lesen, die gelesende Zahl einen hoch setzten (z.B. 11+1=12) und die neue Zahl (12) wieder in Zeile 3 einfügen.
Leider schreibt mein Script die ganze zeit die letzte also 5 zeile. Aber setzt auch nur die Zahl dahinter. Also wenn ich Zeile 5 die Zahl 3 ist steht da nach ausführung 312.
Vielleicht kann mir ja einer helfen oder hat eine Lösung. Oder ich denke viel zu Komplieziert.
Hier mein letzter Versuche. habe schon einiges Durch...

Code: Select all

	FileReadLine, TestVar, %A_Desktop%\Test.txt, 3
	Ersetzen1 := (TestVar+1)
	Loop, Read, %A_Desktop%\Test.txt
	If (A_Index = 3) && InStr(A_LoopReadLine , %TestVar%)
		StringReplace, OutputVar, A_LoopReadLine, %TestVar%, %Ersetzen1%
		FileAppend, %OutputVar%, %A_Desktop%\Test.txt
Mfg Jan

Rohwedder
Posts: 7630
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: TXT Datei Zeile Lesen und Ersetzen  Topic is solved

Post by Rohwedder » 22 May 2021, 10:08

Hallo,
versuch mal:

Code: Select all

FileReadLine, TestVar, %A_Desktop%\Test.txt, 3
Ersetzen1 := TestVar + 1
FileDelete, %A_Temp%\Test.txt
Loop, Read, %A_Desktop%\Test.txt
{
	If (A_Index = 3) && InStr(A_LoopReadLine , TestVar)
		OutputVar := StrReplace(A_LoopReadLine, TestVar, Ersetzen1)
	Else ; entweder die veränderte oder die ursprüngliche Zeile
		OutputVar := A_LoopReadLine
	FileAppend, %OutputVar%`n, %A_Temp%\Test.txt
} ; wird der temporären Test.txt hinzugefügt, `n = Zeilenvorschub/Line Feed
FileMove, %A_Temp%\Test.txt, %A_Desktop%\Test.txt, True
; überschreibt Text.txt mit der temporären Test.txt
oder vorausgesetzt jede Zeile ist eine Zahl:

Code: Select all

FileDelete, %A_Temp%\Test.txt
LF =
Loop, Read, %A_Desktop%\Test.txt
{ ; die ursprüngliche Zeile wird evtl. verändert
	OutputVar := A_LoopReadLine + (A_Index = 3) ; entweder 0 oder 1 wird addiert
	FileAppend, %LF%%OutputVar%, %A_Temp%\Test.txt
	LF = `n ; erst ab der 2. Zeile kommt ein Line Feed hinzu
} ; der temporären Test.txt hinzugefügt, `n = Zeilenvorschub/Line Feed
FileMove, %A_Temp%\Test.txt, %A_Desktop%\Test.txt, True
; überschreibt Text.txt mit der temporären Test.txt
Bei der 2. Version entsteht keine Leerzeile am Schluß.

Post Reply

Return to “Ich brauche Hilfe”