Seite 1 von 1

Suchen und ersetzen?

Verfasst: 27.10.2006 22:13
von mx03
hi wie kann ich eine txt datei öffnen diese nach einem bestimmten string durchsuchen und den string durch einen anderen ersetzen und speichern?

Verfasst: 27.10.2006 22:15
von Kaeru Gaman
ReadString() - FindString() - WriteString()

Re: Suchen und ersetzen?

Verfasst: 27.10.2006 22:16
von Kiffi
> hi wie kann ich eine txt datei öffnen

Mit ReadFile()

> diese nach einem bestimmten string durchsuchen

Mit ReadString() und FindString()

> und den string durch einen anderen ersetzen

mit ReplaceString()

> und speichern?

mit WriteString()

> 3.9x

wieso nicht PB4?

Grüße ... Kiffi

Verfasst: 27.10.2006 22:24
von mx03
also ich hätt das jetzt so gemacht aber ähm geht net so wirklich

Code: Alles auswählen

If OpenFile(1,"config.cfg")
String$ = ReadString()
Stringresulut$ = ReplaceString(String$, "SET movie "0"", "SET movie "1"") 
CloseFile(1) 
EndIf
geht aber nich so

hier die zu editierende file

Code: Alles auswählen

SET hwDetect "0"
SET gxColorBits "24"
SET gxDepthBits "24"
SET gxResolution "1024x768"
SET gxRefresh "60"
SET gxWindow "1"
SET gxMultisample "1"
SET gxMultisampleQuality "0.000000"
SET gxFixLag "0"
SET fullAlpha "1"
SET lodDist "100.000000"
SET SmallCull "0.040000"
SET DistCull "500.000000"
SET trilinear "1"
SET frillDensity "32"
SET farclip "477"
SET specular "1"
SET pixelShaders "1"
SET particleDensity "1.000000"
SET unitDrawDist "300.000000"
SET movie "0"
SET checkAddonVersion "0"
SET mouseSpeed "1"
SET DesktopGamma "1"
SET Gamma "1.000000"
PB 4.00 is mir zu :freak: , ich bin oldschool benutzt ja auch php4 anstatt php5 ;D

Verfasst: 27.10.2006 22:29
von uweb
Du hast gelesen, verglichen und einen neuen String erzeugt. Kann es sein, daß Du vergessen hast zu schreiben ?

Verfasst: 27.10.2006 22:32
von Kiffi
> also ich hätt das jetzt so gemacht

* Du verwendest OpenFile() statt ReadFile(): Du musst die Datei ja nur lesen
und nicht (wie es bei OpenFile() der Fall ist) bei Bedarf erstellen

* Du liest nur eine Zeile ein. Um alles einzulesen, musst Du solange in
einer Schleife die Zeilen lesen, bis EOF() #True ist.

* Du schreibst Stringresulut$ (soll das nicht Stringresult$ heissen?) nicht
wieder auf die Platte.

> PB 4.00 is mir zu :freak:

ähm, ja, da fehlen mir die Worte.

Grüße ... Kiffi

Verfasst: 27.10.2006 22:45
von mx03
* Du verwendest OpenFile() statt ReadFile(): Du musst die Datei ja nur lesen
und nicht (wie es bei OpenFile() der Fall ist) bei Bedarf erstellen
ich will doch die datei ersetzten und mit read les ich doch nur und kann das ersetzte nich speichern oder nich?

Verfasst: 27.10.2006 22:48
von Kiffi
> ich will doch die datei ersetzten

so, wie Du das vorhast, geht das aber nicht.

Du musst die zu lesende Datei mit ReadFile() öffnen. Dann erstellst Du
eine *neue* Datei mit CreateFile(). Mit ReadString() liest Du die Zeilen aus
der zu lesenden Datei und mit WriteString() schreibst Du in die zu
schreibende Datei.

Grüße ... Kiffi

Verfasst: 27.10.2006 22:58
von mx03

Code: Alles auswählen

ReadFile(0, "config.cfg")
Repeat
     text$=ReadString()

     Debug text$
Until Eof(0)<>0
    stringresult$ = ReplaceString(text$, "SET movie "0"", "SET movie "1"")
CloseFile(0)
DelefteFile("config.cfg")
OpenFile(1,"config.cfg")
WriteString(Text$)
CloseFile(1)
also nun ist alles richtig aber ähm geht net

Verfasst: 27.10.2006 23:09
von Kiffi
> also nun ist alles richtig aber ähm geht net

na, dann kann's ja nicht richtig sein ;-)

> DelefteFile("config.cfg")

Was ist denn das für ein Befehl? ;-)

DeleteFile() bräuchtest Du übrigens nicht, wenn Du (wie mehrfach in den
Postings oben geschrieben) CreateFile() verwenden würdest. Liest Du denn
auch mal die Postings, die Dir andere schreiben? :roll:

Code: Alles auswählen

Quelldatei öffnen (ReadFile())
Tempdatei öffnen (CreateFile())

while not eof(Quelldatei)
  UseFile(Quelldatei)
  Zeile aus Quelldatei auslesen
  Zeileninhalt ersetzen
  UseFile(Tempdatei)
  Zeile in Tempdatei schreiben
wend

Tempdatei schliessen
Quelldatei schliessen

Quelldatei löschen
Tempdatei in Quelldatei umbenennen 
Grüße ... Kiffi