AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

StringReplace will nicht?

Ein Thema von Tommy1988 · begonnen am 25. Jul 2008 · letzter Beitrag vom 25. Jul 2008
Antwort Antwort
Seite 1 von 2  1 2      
Tommy1988
(Gast)

n/a Beiträge
 
#1

StringReplace will nicht?

  Alt 25. Jul 2008, 15:27
Folgendes Problem.

Ich möchte gerne BBCode aus Memo1 ersetzen und in Memo2 schreiben lassen:

Delphi-Quellcode:
procedure TForm1.Check(sMemo: TMemo);
var
nMemo: String;
begin
nMemo := sMemo.Lines.Text;
Memo2.Lines.Text :=
StringReplace(nMemo, '[color=', '<font color=#',
[rfReplaceAll, rfIgnoreCase]);

Memo2.Lines.Text :=
StringReplace(nMemo, '[b]', '[b]', [rfReplaceAll]);

Memo2.Lines.Text :=
StringReplace(nMemo, '[/b]', '[/b]', [rfReplaceAll]); // HIER
LoadHTMLToWebbrowser(WebBrowser1, SynMemo2.Lines);
end;
Aber irgentwie will nur das in der markierten Zeile funktionieren, das drüber und drunter geht nicht
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: StringReplace will nicht?

  Alt 25. Jul 2008, 15:30
Du musst schon immer nMEmo als Ergebnis von Stringreplace verwenden und erst am Ende dies dem Memo2 zuweisen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Tommy1988
(Gast)

n/a Beiträge
 
#3

Re: StringReplace will nicht?

  Alt 25. Jul 2008, 15:32
Das verstehe ich jetzt nicht so ganz

Edit: Achso, der Aufruf von Check ist dieser:
Check(Memo1);
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#4

Re: StringReplace will nicht?

  Alt 25. Jul 2008, 15:34
Stringreplace ist eine Funktion. Im Ergebnis kommt der String, in dem der Austausch durchgeführt wurde

Wenn Du also einfach nur so Stringreplace ausführst, passiert nichts, es sei denn Du weist das Ergebnis einem String zu.

Sherlock
Oliver
  Mit Zitat antworten Zitat
Tommy1988
(Gast)

n/a Beiträge
 
#5

Re: StringReplace will nicht?

  Alt 25. Jul 2008, 15:36
Verstehe ich immernoch nicht

Macht man das nciht so? Das ERGEBNIS dem MEMO zuweisen?
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: StringReplace will nicht?

  Alt 25. Jul 2008, 15:36
Delphi-Quellcode:
  nMemo := sMemo.Lines.Text;
  nMemo:= //ändern
  StringReplace(nMemo, '[color=', '<font color=#',
  [rfReplaceAll, rfIgnoreCase]);

  nMemo := //ändern
  StringReplace(nMemo, '[b]', '[b]', [rfReplaceAll]);

  nMemo := //ändern
  StringReplace(nMemo, '[/b]', '[/b]', [rfReplaceAll]); // HIER

  Memo2.lines.text:=nMemo; //neu
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#7

Re: StringReplace will nicht?

  Alt 25. Jul 2008, 15:37
Ich nutze mal die Delphi-Hilfe zur Erklärung:
Zitat:
Die Funktion gibt einen String mit ersetzten Sub-Strings zurück.
Alles klar?

Edit: Eigentlich machst Dus ja richtig...ich bin raus. Das Problem ist die Zuweisung an das Memo...SORRY!!

Sherlock
Oliver
  Mit Zitat antworten Zitat
worker
(Gast)

n/a Beiträge
 
#8

Re: StringReplace will nicht?

  Alt 25. Jul 2008, 15:37
Zitat von Sherlock:
Stringreplace ist eine Funktion. Im Ergebnis kommt der String, in dem der Austausch durchgeführt wurde
Das weiß er wohl. Er hat nur, wie sirius schon anmerkt, einen Denkfehler.

Er ersetzt jedesmal den Text von nMemo, d.h. nur die letzte Ersetzung steht abschließend in Memo2.

Also entweder wie sirius sagt, das Ergebnis immer nMeom zuweisen und dieses am Schluß an Memo2, oder immer Memo2.Text an StringReplace übergeben (außer beim ersten Mal).
  Mit Zitat antworten Zitat
Tommy1988
(Gast)

n/a Beiträge
 
#9

Re: StringReplace will nicht?

  Alt 25. Jul 2008, 15:44
So, sry jetzt hab ich endlich den Kopf frei. Wenn man von allen Seiten (hier zuhaus) zugequatscht wird bekomtm man nix mehr hin.

Mitlerweile habe ich es verstanden und MEINEN DENKFEHLER auch gefunden
  Mit Zitat antworten Zitat
Tommy1988
(Gast)

n/a Beiträge
 
#10

Re: StringReplace will nicht?

  Alt 25. Jul 2008, 17:18
Hab da aber schon ein neues Problem, was ich nicht geregelt bekomme

Folgender Code steht im OnChange des Memo1
Delphi-Quellcode:
Memo1.Lines.Text :=
StringReplace(Memo1.Lines.Text, '[color='+
ColorToHex(JvColorButton1.Color)+']', '<font color=#'+
ColorToHex(JvColorButton1.Color)+'>',
[rfReplaceAll, rfIgnoreCase]);

Memo1.Lines.Text := StringReplace(Memo1.Lines.Text, '[/color]', '</font>',
[rfReplaceAll, rfIgnoreCase]);

Memo2.Lines.Text := Memo1.Lines.Text;
Wenn ich jetzt auf einen Button klicke und zuvor einen Farbe aus dem JvColorButton ausgewählt habe,
wird diese auch ordnungsgemäß hinzugefügt. Im WebBrowser stimmt auch die Farbe.

Führe ich dies jedoch ein zweites Mal aus, so setzt er den 2. Text in die richtige Farbe, aber den
ersten wieder in "Schwarz" ?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz