Hallo, guten Tag.
Wie kann man eine 3.Textzeile in einer Datei ändern.
so sehen die Zeilen aus:
processor 6502
ORG $01
chartrans
jmp block41
charset dc.b $0ff, $081, $081, $081, $081, $081, $081, $0ff
..........
..........
Danke.
gruss
3. Zeile in einer Textdatei ändern.
Re: 3. Zeile in einer Textdatei ändern.
Mit Texteditor öffnen, ändern, speichern
Re: 3. Zeile in einer Textdatei ändern.
Habs mal so gelöst:
Ich denke besser wäre es wenn mit einem Signatur-Scanner die Zeilenumbrüchen zu ermitteln.
Solange es nur für ein internes Tool ist und es sich nur um wenige Zeilen handelt sollte die Lösung ok sein.
Code: Alles auswählen
EnableExplicit
Procedure.i ChangeLine3(File.s,Text.s)
Protected handle.i
Protected result.i
Protected str.s
Protected s1.i
Protected s2.i
Protected *buffer
Protected buffersize.i
If File
If Not FileSize(File) < #Null
handle = OpenFile(#PB_Any,File,#PB_Ascii)
If IsFile(handle)
ReadString(handle)
ReadString(handle)
s1 = Loc(handle)
ReadString(handle)
s2 = Loc(handle)
buffersize = Lof(handle) - s2
*buffer = AllocateMemory(buffersize)
If *buffer
If ReadData(handle,*buffer,buffersize) = buffersize
FileSeek(handle,s1,#PB_Absolute)
TruncateFile(handle)
If WriteStringN(handle,Text)
If WriteData(handle,*buffer,buffersize) = buffersize
result = #True
EndIf
EndIf
EndIf
FreeMemory(*buffer)
EndIf
CloseFile(handle)
EndIf
EndIf
EndIf
ProcedureReturn result
EndProcedure
Debug ChangeLine3("test.txt","Hello World!")
End
Solange es nur für ein internes Tool ist und es sich nur um wenige Zeilen handelt sollte die Lösung ok sein.
Re: 3. Zeile in einer Textdatei ändern.
Danke für die Info.
Gruss
Gruss
- stab
- Beiträge: 92
- Registriert: 24.02.2006 16:09
- Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
- Wohnort: Hardt
- Kontaktdaten:
Re: 3. Zeile in einer Textdatei ändern.
Abgesehen davon, dass mir die Version von Josh am sympathischten ist, hier meine klassische Version mittels File und Filesystem Library.
Hatte letztens sowas ähnliches.
Hatte letztens sowas ähnliches.
Code: Alles auswählen
#Alt = 1
#Neu = 2
textdatei$ = "D:\Temp\test.txt"
textneu$ = "Hier ist meine neue 3. Zeile"
textzeile = 3
Procedure.s ersetzeTextzeile(datei$,text$,zeile)
ergebnis$ = "Scheint funktioniert zu haben"
dateiSicherung$ = GetPathPart(datei$) + GetFilePart(datei$ ,#PB_FileSystem_NoExtension) +" (Sicherung)." + GetExtensionPart(datei$)
DeleteFile(dateiSicherung$)
If RenameFile(datei$, dateiSicherung$)
If ReadFile(#Alt, dateiSicherung$) And OpenFile(#Neu, datei$)
z=0
Repeat
z+1
tmpZeile$ = ReadString(#Alt)
If Not z = zeile : Textzeile$ = tmpZeile$ : Else : Textzeile$ = text$ : EndIf
WriteStringN(#Neu, Textzeile$ )
Until Eof(#Alt)
Else : ergebnis$ = "Fehler Read/Open File" : EndIf
Else : ergebnis$ = "Fehler RenameFile" : EndIf
ProcedureReturn ergebnis$
EndProcedure
Debug ersetzeTextzeile(textdatei$,textneu$,textzeile)
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."
Wer lügt hier wirklich und wer sagt die Wahrheit?
_________________________________________
286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."
Wer lügt hier wirklich und wer sagt die Wahrheit?
_________________________________________
286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Re: 3. Zeile in einer Textdatei ändern.
@stab bin bei meiner Lösung nicht davon ausgegangen das WriteStringN() schon so ausgereift ist,
gut zu wissen
gut zu wissen
Re: 3. Zeile in einer Textdatei ändern.
Danke für die Hilfe.
Gruss
Gruss