Suchen und ersetzen?

Anfängerfragen zum Programmieren mit PureBasic.
mx03
Beiträge: 47
Registriert: 29.09.2006 22:44

Suchen und ersetzen?

Beitrag 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?
4
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ReadString() - FindString() - WriteString()
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Suchen und ersetzen?

Beitrag 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
a²+b²=mc²
mx03
Beiträge: 47
Registriert: 29.09.2006 22:44

Beitrag 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
4
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag von uweb »

Du hast gelesen, verglichen und einen neuen String erzeugt. Kann es sein, daß Du vergessen hast zu schreiben ?
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
mx03
Beiträge: 47
Registriert: 29.09.2006 22:44

Beitrag 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?
4
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
mx03
Beiträge: 47
Registriert: 29.09.2006 22:44

Beitrag 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
4
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Antworten