| Autor |
Beitrag |
Danniolo
      
Beiträge: 693
|
Verfasst: Mi 13.07.05 10:50
Hey, alle zusammen,
wie kann ich in einem String (so einen z.B. "Hallo %1 %2") Die Platzhalter (%1) durch
einen String (z.B. wie geht's dir) ersetzten?
Also eine Möglichkeit ist ja so:
Delphi-Quelltext 1:
| Format('Hallo %s',['Wie geht's dir?']); |
Damit kann man meines Wissens aber nur einen Platzhalter (nämlich %s) ersetzten
_______
Greetz
______Danniolo
Moderiert von Tino: Code- durch Delphi-Tags ersetzt.
|
|
maxk
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Mi 13.07.05 10:58
Z.b. so:
Delphi-Quelltext 1:
| s:=StringReplace('Hallo %1 %2', '%1', 'Wie geht''s dir?', [rfReplaceAll]); |
rfReplaceAll sorgt dafür, dass jedes %1 ersetzt wird und nicht nur das erste. Wenn du Buchstaben drin hättest, könntest du nocht rfIgnoreCase verwenden, um keine Unterscheidung zwischen Groß- und Kleinschreibung durchzuführen.
Gruß,
maxk
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
Danniolo 
      
Beiträge: 693
|
Verfasst: Mi 13.07.05 11:06
Vielen Dank!
Hat mir bestimmt ne' menge suchzeit gespart! 
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 13.07.05 14:10
StringRepalce ist hier eindeutig fehl am Platz. Format kann mit mehreren Platzhaltern umgehen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Button1Click(Sender: TObject); var s: String; const MEINSTRING = 'Hallo %s %s.'; begin s := Format(MEINSTRING, ['Michael', 'Puff']); ShowMessage(s); end; |
|
|
maxk
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Mi 13.07.05 14:41
Natürlich! Aber so wie ich das verstanden hatte, wollte er mit %1 und %2 arbeiten, statt mit %s.
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 13.07.05 14:42
maxk hat folgendes geschrieben: | | Natürlich! Aber so wie ich das verstanden hatte, wollte er mit %1 und %2 arbeiten, statt mit %s. |
Damit wollte er wohl nur zeigen, dass er mehrere Platzhalter verwenden will.
|
|
maxk
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Mi 13.07.05 14:54
Jetzt wo ich es noch einmal lese muss ich zugeben, dass du Recht hast 
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
ScorpionKing
      
Beiträge: 1150
Win XP
|
Verfasst: Mi 13.07.05 14:55
Luckie hat folgendes geschrieben: | maxk hat folgendes geschrieben: | | Natürlich! Aber so wie ich das verstanden hatte, wollte er mit %1 und %2 arbeiten, statt mit %s. |
Damit wollte er wohl nur zeigen, dass er mehrere Platzhalter verwenden will. |
Oder er schreibt ein Chat-Programm und will Smilie-Codes ersetzen. Dann wäre StringReplace besser!
_________________ Aus dem Urlaub zurück!
|
|
Danniolo 
      
Beiträge: 693
|
Verfasst: Mi 13.07.05 15:51
Also 'n Chatprogarmm ist's auf keinen Fall!
Das mit Stringreplace hab' ich ausprobiert und, ...
naja, es war halt nicht das was ich hoffte.
Luckie hat folgendes geschrieben: | | Damit wollte er wohl nur zeigen, dass er mehrere Platzhalter verwenden will. |
 Stimmt!
Die zweite Methode hat auch wirklich das richtige Ergebnis erbracht!
Danke!
_________________
Danniolo
|
|
ScorpionKing
      
Beiträge: 1150
Win XP
|
Verfasst: Mi 13.07.05 16:02
Ok, war auch nur eine Vermutung! 
_________________ Aus dem Urlaub zurück!
|
|
Danniolo 
      
Beiträge: 693
|
Verfasst: Mi 13.07.05 16:04
Wenn ich ein Chatprogramm schreiben würde,
würd' ich das mit dfen Smiles wahrscheinlich genauso machen (Also mit ReplaceString)!

|
|