![]() |
StringReplace "String" durch "[b]String[/b]" ersetzen
Hallo,
Ich möchte ein Wort innerhalb einer Zeichenkette mit bestimmten Styleattributen umgeben. Dabei soll die Groß- und Kleinschreibung auf JEDEN FALL erhalten bleiben. Beispiel:Wort: ich Zeichenkette: Ich wusste, dass ich in diesem Punkt falsch lag. Ersetzen durch: Ich wusste, dass ich in diesem Punkt falsch lag. Momentan mache ich das mit StringReplace:
Code:
Leider geht damit die ursprüngliche Groß- und Kleinschreibung verloren.
StringReplace(Caption, Highlight, ('[b]' + Highlight + '[/b]'), [rfReplaceAll, rfIgnoreCase])
Fällt euch dafür eine geeignete Lösung ein? Gibt es vielleicht schon eine passende Methode dafür? Vielen Dank im voraus. /Steven |
AW: StringReplace "String" durch "[b]String[/b]" ersetzen
Du verwendetst "rfIgnoreCase".
Nimm diesen Parameter weg. Allerdings musst du dann die funktion einmal mit "Ich" und einmal mit "ich" durchführen. |
AW: StringReplace "String" durch "[b]String[/b]" ersetzen
Schalt mal die Beachtung der Groß-/Kleinschreibung an
|
AW: StringReplace "String" durch "[b]String[/b]" ersetzen
Dein Problem ist das folgende: StringReplace hat keine Möglichkeit, das gefundene Wort mit in die Ersetzung einzubeziehen.
Ich sehe 3 Lösungsvarianten:
1. ist wahlweise ineffizient oder ungenau, aber schnell implementiert. 2. bedeutet eine zusätzliche Bibliothek, ist aber effizient und einfach. 3. bedeutet Arbeit, ist aber ne saubere Lösung und stand-alone. |
AW: StringReplace "String" durch "[b]String[/b]" ersetzen
Zitat:
|
AW: StringReplace "String" durch "[b]String[/b]" ersetzen
@QStorm
Ich hab lange mit Delphi 3 programmiert und das hatte kein StringReplace, also habe ich es mir selber programmiert. So eine Funktion kann man an seine Ansprüche modifizieren. Wenn du Interesse hast, sag Bescheid. |
AW: StringReplace "String" durch "[b]String[/b]" ersetzen
Delphi-Quellcode:
Function Capsulate(From:String;const find,l,r:String):String;
var F,s:String; i,lf:Integer; begin f := Lowercase(From); s := Lowercase(find); i := pos(s,f); while i>0 do begin Result := Result + Copy(From,1,i-1) +l + Copy(From,i,Length(find)) + r; From := Copy(From,i + length(find),length(From)); f := Lowercase(From); i := pos(s,f); end; REsult := Result + From; end; procedure TForm3.Button1Click(Sender: TObject); begin memo2.Text := Capsulate(memo1.Text,'ich','[b]','[/b]') end; allerdings wird nicht auch zu nicht, da müsstest Du noch eine Prüfung einbauen ... |
AW: StringReplace "String" durch "[b]String[/b]" ersetzen
Zitat:
P.S.: nicht auch zu nicht ist gewünscht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz