Seite 1 von 1
Remove String Problem, Tab entfernen & Teile entfernen
Verfasst: 22.12.2005 22:07
von Zero_Cool
Abend
Ich habe wieder mal meine Probleme mit den Strings.
Ich würde gerne eine Datei nach einem Wort durchsuchen ( FindString ), jede Stelle an der das Wort vorkommt, sollte gelöscht werden. ( Remove String ) Sozusagen, suche Wort und lösche es, bis es dieses Wort nicht mehr gibt. Danach sollte das File geschlossen und gespeichert werden.
Diesen Code könnte ich verwenden, jedoch nützt mir der Debug Befehl in einer Konsolenanwendung leider nicht viel. Läuft ja nicht, oder Irre ich mich. Eigentlich müsste nur durchsucht wernde, ersetzt werden und gespeichert werdne.
Code: Alles auswählen
Text$ = "xyz123"
Text$ = RemoveString(Text$, "xyz123")
Debug Text$
Kann ich automatisch alle Tabulatoren in einem TXT File löschen?
Drittes Problem: Ich würde gerne automatisch Teile einer Zeile löschen, aber erst ab einem gewissen Zeichen. Soll heissen, das Programm sollte alle Zeilen die das Wort "abc" beinhalten suchen, und sollte dan in dieser Zeile, den gesammten Inhalt der nach dem ersten Sonderzeichen "'?" geschireben steht löschen?
Verfasst: 22.12.2005 22:17
von ts-soft
>> Kann ich automatisch alle Tabulatoren in einem TXT File löschen?
oder Tab durch Space ersetzen:
3. Problem kannste ja langsam alleine lösen! FindString um die Postion des Fragezeichens zu finden, und Right() oder Mid um abzuschneiden
Verfasst: 22.12.2005 22:26
von Zero_Cool
Dank für die Hilfe. Ja ich weiss, irgendwie stehe ich noch ein wenig auf der Leitung. Hoffe das ändert sich bald. Habe den durchblick noch nicht ganz.
Wäre dieser Code Korrekt, um die Tab zu entfernen?
Code: Alles auswählen
File1 = ReadFile(#PB_Any, "c:\Dev\_001.tmp")
If File1
File2 = CreateFile(#PB_Any, "c:\Dev\_002.tmp")
If File2
While Eof(File1) = #False
UseFile(File1)
Text$ = ReplaceString(Text$, #TAB$, "")
Wend
CloseFile(File1)
CloseFile(File2)
EndIf
EndIf
Das gleiche würde dann ja auch für das löschen von Wörtern gelten:
Code: Alles auswählen
File1 = ReadFile(#PB_Any, "c:\Dev\_001.tmp")
If File1
File2 = CreateFile(#PB_Any, "c:\Dev\_002.tmp")
If File2
While Eof(File1) = #False
UseFile(File1)
Text$ = ReadString()
If FindString(Text$, "abc1) = 1
ReplaceString(Text$, "abc","")
EndIf
Wend
CloseFile(File1)
CloseFile(File2)
EndIf
EndIf
Verfasst: 22.12.2005 22:44
von ts-soft
RemoveString ist wohl etwas schneller, als ReplaceString mit "", aber sehe Dir doch einfach mal alle Befehle in der StringLib von PB an und probiere es aus, kann man sehr viel mit machen

Verfasst: 22.12.2005 22:57
von Zero_Cool
Jep, danke für die Info. Habe nun einen Code geschrieben. Jedoch scheint er leider noch nicht zu funktionieren.
Code: Alles auswählen
File1 = ReadFile(#PB_Any, "c:\Dev\_002.tmp")
While Eof(File1) = #False
Text$ = ReadString()
Remove$ = "<a title="
If FindString(Text$, Remove$, 1) = 1
RemoveString(Text$, Remove$)
EndIf
Wend
CloseFile(File1)
Sinn des Codes ist es alle "abc" zu löschen.
Verfasst: 22.12.2005 23:21
von ts-soft
Verfasst: 22.12.2005 23:33
von Zero_Cool
Irgendwie scheine ich ein Brett vor dem Kopf zu haben!! Ist halt bei Anfängern die am Anfang zuviel wollen...
"<a title=" Wird immer noch nicht gelöscht...
Code: Alles auswählen
File1 = ReadFile(#PB_Any, "c:\Dev\_001.tmp")
While Eof(File1) = #False
Text$ = ReadString()
Remove$ = "<a title="
If FindString(Text$, Remove$, 1) = 1
Text$ = RemoveString(Text$, Remove$)
EndIf
Wend
CloseFile(File1)
Verfasst: 23.12.2005 11:19
von Batze
Wenn du Findstring() = 1 abfragst löscht er es nur wenn das Wort ganz am Anfang steht.
PB-Hilfe hat geschrieben:
Position = FindString(String$, SuchString$, StartPosition)
Beschreibung
Versucht den 'Suchstring$' im angegebenen 'String$' - beginnend an der angegebenen Position ('StartPosition') - zu finden. Wurde der String gefunden, wird dessen Position (in Anzahl der Zeichen, beginnend bei 1) zurückgegeben. Wurde der String nicht gefunden, gibt die Funktion 0 zurück.
Also ließ die Hilfe genauer. Denn die Rückgabewerte sind schon oft verwirrend, da hab ich auch schon oft Fehler gemacht.
PB-Hilfe hat geschrieben:
String$ = RemoveString(String$, LöschString$ [, Modus])
Beschreibung
Ermittelt alle Vorkommen des 'LöschString$' im angegebenen 'String$' und entfernt diese.
Das heißt, RemoveString() tut genau das was du brauchst, und wenn der gesuchte String nicht drin ist gibt es halt den Orginalstring zurück.
Deswegen kannst du dir das
If Findstring() sparen.

Verfasst: 23.12.2005 22:31
von Zero_Cool
Einmal versuche ich es noch, sonst gebe ich es auf...
Folgender Code funktioniert leider immer noch nicht. Ich lasse das Programm laufen, jedoch befinden sich immer noch alle abc im Text.
Code: Alles auswählen
File1 = ReadFile(#PB_Any, "c:\Dev\_001.tmp")
While Eof(File1) = #False
Text$ = ReadString()
Text$ = ReplaceString(Text$, "abc", "")
Wend
CloseFile(File1)
Code: Alles auswählen
File1 = ReadFile(#PB_Any, "c:\Dev\_001.tmp")
While Eof(File1) = #False
Text$ = ReadString()
Remove$ = "abc"
Text$ = RemoveString(Text$, Remove$)
Wend
CloseFile(File1)
Verfasst: 23.12.2005 22:49
von edel
Wenn du Zeichen in der Datei _001.tmp loeschen moechtest
musst du sie auch wieder hineinschreiben.
Code: Alles auswählen
File1 = ReadFile (#PB_Any,"c:\Dev\_001.tmp")
File2 = CreateFile(#PB_Any,"c:\Dev\_002.tmp") ;
While Eof(File1) = #False
UseFile(File1)
Text$ = ReadString()
Text2$ + ReplaceString(Text$, "abc", "")
UseFile(File2)
WriteStringN(Text2$)
Wend
CloseFile(File1)
CloseFile(File2)