Ich möchte bitte bestimmt Werte ersetzen aus einer Textdatei.
Alle Werte mit "1000" sollen ersetzt werden durch die "0".1000
0
#
5
-1
0
0
0
#
9
-1
0
1000
0
#
0
-1
0
0
0
#
0
#
#
0
56
Wie geht das ?
Danke.
Gruss
peter
Alle Werte mit "1000" sollen ersetzt werden durch die "0".1000
0
#
5
-1
0
0
0
#
9
-1
0
1000
0
#
0
-1
0
0
0
#
0
#
#
0
56
Code: Alles auswählen
NewList row.s()
Datei$ = "Pfad zur Text-Datei"
If OpenFile(0, Datei$)
While Eof(0) = 0
AddElement(row())
row() = ReadString(0)
If row() = "1000"
row() = "0"
EndIf
Wend
CloseFile(0)
If CreateFile(0, Datei$)
ForEach row()
WriteStringN(0, row())
Next
CloseFile(0)
EndIf
EndIf
Code: Alles auswählen
Define.s file = "Dateiname.txt"
Define *mem, content.s, format.i
If ReadFile(0, file)
format = ReadStringFormat(0)
*mem = AllocateMemory(Lof(0), #PB_Memory_NoClear)
If *mem
ReadData(0, *mem, Lof(0))
content = PeekS(*mem, -1, format)
FreeMemory(*mem)
content = ReplaceString(content, "1000", "0")
EndIf
CloseFile(0)
If CreateFile(0, file)
WriteString(0, content, format)
CloseFile(0)
EndIf
EndIf
Nach jeder Zeile befindet sich ein CRLF$ bzw. LF$, wenn Du das mit einbeziehst ist die Fehleranfälligkeit beseitigt.NicTheQuick hat geschrieben:Fehleranfällig ist sie deswegen, weil jedes Vorkommen von "1000" zu einer "0" ersetzt wird, d.h. auch wenn da steht "1000456" wird dies zu "0456".
Wenn "0000" oder 3xLeerzeichen +"0" auch genehm ist, reicht auch:funkheld hat geschrieben:Alle Werte mit "1000" sollen ersetzt werden durch die "0".
Code: Alles auswählen
OpenFile(1,"Dateiname.txt")
While Not Eof(1)
If ReadString(1)="1000"
FileSeek(1,Loc(1)-6)
WriteStringN(1,"0000") ;bzw. 3xLeerzeichen+"0"
EndIf
Wend
CloseFile(1)