AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi StringReplace "String" durch "[b]String[/b]" ersetzen
Thema durchsuchen
Ansicht
Themen-Optionen

StringReplace "String" durch "[b]String[/b]" ersetzen

Ein Thema von QStorm · begonnen am 28. Sep 2012 · letzter Beitrag vom 28. Sep 2012
Antwort Antwort
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#1

AW: StringReplace "String" durch "[b]String[/b]" ersetzen

  Alt 28. Sep 2012, 13:10
Dein Problem ist das folgende: StringReplace hat keine Möglichkeit, das gefundene Wort mit in die Ersetzung einzubeziehen.

Ich sehe 3 Lösungsvarianten:
  1. Case-Sensitives String-Replace mit möglichen Groß-/Kleinschreibungsvarianten.
    Das sind potenziell exponentiell viele, lassen sich sich vielleicht aber auf häufige Varianten eingrenzen: alles groß, nur Wortanfang groß, alles klein.
  2. Benutzung einer ordentlichen Bibliothek für reguläre Ausdrucke mit Unterstützung für Gruppen
  3. Selber programmieren.

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.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.

Geändert von BUG (28. Sep 2012 um 13:12 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: StringReplace "String" durch "[b]String[/b]" ersetzen

  Alt 28. Sep 2012, 13:24
@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.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: StringReplace "String" durch "[b]String[/b]" ersetzen

  Alt 28. Sep 2012, 13:40
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 ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
QStorm

Registriert seit: 28. Jun 2008
46 Beiträge
 
#4

AW: StringReplace "String" durch "[b]String[/b]" ersetzen

  Alt 28. Sep 2012, 14:01
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 ...
Wunderbar, vielen Dank

P.S.: nicht auch zu nicht ist gewünscht.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:37 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-2025 by Thomas Breitkreuz