Autor Beitrag
TheUnknown
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 334



BeitragVerfasst: Do 04.02.10 11:39 
Hallo,

mir reisst langsam die Geduld, ich krieg das einfach nicht hin, mir eine Routine zusammenzuschreiben, die mich eine StringReplace-Funktion nutzen lässt, die auch Wildcards wie * oder ? akzeptiert.

Anstatt also z.B.

StringReplace(STRING, 'Radfahrerhelm', 'Ersetzt', []);

möchte ich lieber z.B.

StringReplace(STRING, '*fahr*', 'Ersetzt', []);

benutzen können, um nicht alle mögliche Möglichkeiten separat durchgehen zu müssen, in denen die Zeichenfolge "fahr" vorkommt. Natürlich mit den Optionen "rfReplaceAll" und "rfIgnoreCase"... Das kann ja nicht so schwer sein, aber ich bekomme das einfach nicht hin.

Bei den Schweizern habe ich eine Möglichkeit gefunden, zwei Strings mit Wildcards zu vergleichen, aber auch hier schaffe ich es nicht, den für mich wichtigen so Teil entnehmen, dass ich meine Funktion hinbekomme.

Wie muss so eine Funktion aussehen? :)
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 04.02.10 12:41 
Moin!

user profile iconTheUnknown hat folgendes geschrieben Zum zitierten Posting springen:
Das kann ja nicht so schwer sein, aber ich bekomme das einfach nicht hin.
Oh doch, das hat ein paar ziemlich ekelige Haken, dieses Problem... :?

Aber warum das Rad neu erfinden, schau dir mal TRegExpr an, das kann das alles schon und funktioniert bereits. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
TheUnknown Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 334



BeitragVerfasst: Do 04.02.10 12:44 
Der Link funktioniert leider nicht! :)
Tastaro
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 414
Erhaltene Danke: 23



BeitragVerfasst: Do 04.02.10 12:45 
Hmm - was soll er den ersetzen?

Bei
ausblenden Delphi-Quelltext
1:
Result := StringReplace('Der Radfahrerhelm ist blau''*fahr*''Ersetzt', []);					

müsste dann ja in Result nur 'Ersetzt' stehen.

Und auch bei
ausblenden Delphi-Quelltext
1:
Result := StringReplace('Ich fahre ins Blaue''*fahr*''Ersetzt', []);					

kommt in Result nur 'Ersetzt' raus.

Dagegen steht bei
ausblenden Delphi-Quelltext
1:
Result := StringReplace('Die Fähre fährt''*fahr*''Ersetzt', []);					

in Result auch 'Die Fähre fährt' raus.

Ist das so korrekt?

Dann kann man das mit:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
if pos('fahr', Text) <> 0 then
   Result = 'Ersetzt'
else
   Result = Text;

machen.

Beste Grüße
TheUnknown Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 334



BeitragVerfasst: Do 04.02.10 12:49 
Jain, es geht mir darum, dass ich z.B. Klammerbemerkungen entfernen kann.

Sagen wir mal als Beispiel "This is a Song (New Bonus Track)". Wenn in der Klammerbemerkung nun also die "Folge " (*Bonus*)" vorkommt, soll nur noch "This ist a Song" übrig bleiben. Würde ich jetzt einfach nur "(Bonus Track) suchen, würde in dem Fall die Function nicht greifen, weil ja da noch das Wort "New" drin ist.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 04.02.10 12:50 
Moin!

user profile iconTheUnknown hat folgendes geschrieben Zum zitierten Posting springen:
Der Link funktioniert leider nicht! :)
Hm :? hab ich auch gerade bemerkt... :nixweiss: und ich finde auf Anhieb auch keinen Mirror... :gruebel:

Ich häng´s mal dran, war AFAIR lizenztechnisch OK.

cu
Narses
Einloggen, um Attachments anzusehen!
_________________
There are 10 types of people - those who understand binary and those who don´t.
TheUnknown Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 334



BeitragVerfasst: Do 04.02.10 15:41 
Danke für die Mühe, aber ich habe es jetzt anders geregelt, zwar icht genau das, was ich wollte, aber es langt aus! :)
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.