Durch Replace hängt sich Programm auf
Übersicht

aimheldBetreff: Durch Replace hängt sich Programm auf |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Moin,
ich hänge momentan an etwas, bei dem ich einfach nicht weiterkomme. Ich versuche grade ein Programm zu schreiben, das eine Datei nach einer Zeichenfolge durchsucht und durch eine beliebig andere ersetzt. Da dachte ich, Replace passt da perfekt. Allerdings hängt sich das Programm in der Function bei Replace auf. Code: [AUSKLAPPEN] [..] datei_textfeld = CreateTextField(100,10,150,20,fenster) suchen_textfeld = CreateTextField(100,40,150,20,fenster) ersetzen_textfeld = CreateTextField(100,70,150,20,fenster) [..] ersetzen(GadgetText(suchen_textfeld),GadgetText(ersetzen_textfeld)) Function ersetzen(suchtext$,ersetzungstext$) datei = ReadFile(GadgetText(datei_textfeld)) out = WriteFile("out.txt") local zeile$ While Not Eof(datei) zeile = ReadLine(datei) If Instr(zeile,suchtext) <> 0 Then neue_zeile = Replace(zeile,suchtext$,ersetzungstext$) WriteLine out,neue_zeile EndIf Wend CloseFile datei CloseFile out End Function Das sind erstmal die wichtigen stellen. Ich hoffe ihr könnt mir einen Tipp geben ![]() Danke für eure Hilfe Mfg aimheld EDIT Hier ist der gesammte Code. Vielleicht habt ihr es so leicher. Oder ihr könntet es an eurem System testen, vielleicht liegt der Fehler nicht am Code. Code: [AUSKLAPPEN] ; ------------------------Umgebung erstellen ------------------------------ fenster = CreateWindow("Zeilenersetzung",100,100,400,180,0,1) datei_label = CreateLabel("Datei:",10,13,40,15,fenster) Global datei_textfeld = CreateTextField(100,10,150,20,fenster) datei_button = CreateButton("Durchsuchen",300,12,85,20,fenster) suchen_label = CreateLabel("Suchen nach:",10,43,70,15,fenster) Global suchen_textfeld = CreateTextField(100,40,150,20,fenster) ersetzen_label = CreateLabel("Ersetzen durch:",10,73,75,15,fenster) Global ersetzen_textfeld = CreateTextField(100,70,150,20,fenster) start_button = CreateButton("Starten",10,110,50,20,fenster) loeschen_button = CreateButton("Löschen",80,110,50,20,fenster) status_label = CreateLabel(0,180,113,200,20,fenster) ; -------------------------------------------------------------------------- Global ms#,ms_ende#,zeit#,datei,out SetGadgetText status_label,"Bereit" Repeat Delay 10 event = WaitEvent() If Event = $401 Then Select EventSource() Case datei_button old_rfile$ = rfile$ rfile$=RequestFile("Datei zum durchsuchen wählen","*",0) If rfile$ = "" And old_rfile$ <> "" Then SetGadgetText datei_textfeld,old_rfile$ ElseIf rfile$ <> "" Then SetGadgetText datei_textfeld,rfile$ EndIf Case loeschen_button SetGadgetText datei_textfeld,"" SetGadgetText suchen_textfeld,"" SetGadgetText ersetzen_textfeld,"" SetGadgetText status_label,"Einträge gelöscht" Case start_button SetGadgetText status_label,"Gestartet.." ersetzen(GadgetText(suchen_textfeld),GadgetText(ersetzen_textfeld)) SetGadgetText status_label,"Fertig nach " + zeit + " Millisekunden." End Select EndIf Until event=$803 End Function ersetzen(suchtext$,ersetzungstext$) ms = MilliSecs() datei = ReadFile(GadgetText(datei_textfeld)) out = WriteFile("out.txt") Local zeile$ While Not Eof(datei) zeile = ReadLine(datei) If Instr(zeile,suchtext) <> 0 Then neue_zeile = Replace(zeile,suchtext,ersetzungstext) WriteLine out,neue_zeile EndIf Wend CloseFile datei CloseFile out ms_ende = MilliSecs() zeit = ms_ende - ms End Function |
||
- Zuletzt bearbeitet von aimheld am Fr, Okt 31, 2008 18:09, insgesamt 5-mal bearbeitet
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du hast doch ohnehin schon GadgetText(suchen_textfeld) und GadgetText(ersetzen_textfeld) als Argumente an die Funktion ersetzen() gegeben, dann kannst du sie doch auch innerhalb von der replace Funktion verwenden. | ||
Starfare: Worklog, Website (download) |
aimheld |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi ZaP,
danke dir für deine Antwort. Richtig, darauf hätte ich achten sollen. Danke für den Hinweis ![]() Das Problem besteht natürlich noch weiterhin. Ich habe die Stelle mit ZaPs Hinweis editiert. |
||
![]() |
flona |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst hier statt GadgetText TextFieldText verwenden, dann gehts:
Code: [AUSKLAPPEN] ersetzen(TextFieldText(suchen_textfeld),TextFieldText(ersetzen_textfeld))
|
||
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit |
aimheld |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ahhh ich liebe dich ^^ Dankeschön. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group