Autor Beitrag
Danniolo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 693



BeitragVerfasst: 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:

ausblenden 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 user profile iconTino: Code- durch Delphi-Tags ersetzt.
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Mi 13.07.05 10:58 
Z.b. so:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 693



BeitragVerfasst: Mi 13.07.05 11:06 
Vielen Dank!
Hat mir bestimmt ne' menge suchzeit gespart! :wink:
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 13.07.05 14:10 
StringRepalce ist hier eindeutig fehl am Platz. Format kann mit mehreren Platzhaltern umgehen:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: 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



BeitragVerfasst: Mi 13.07.05 14:42 
user profile iconmaxk 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1150

Win XP

BeitragVerfasst: Mi 13.07.05 14:55 
user profile iconLuckie hat folgendes geschrieben:
user profile iconmaxk 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 693



BeitragVerfasst: Mi 13.07.05 15:51 
Also 'n Chatprogarmm ist's auf keinen Fall! :wink:
Das mit Stringreplace hab' ich ausprobiert und, ...
naja, es war halt nicht das was ich hoffte.

user profile iconLuckie hat folgendes geschrieben:
Damit wollte er wohl nur zeigen, dass er mehrere Platzhalter verwenden will.


:arrow: Stimmt!
Die zweite Methode hat auch wirklich das richtige Ergebnis erbracht!
Danke!

_________________
Danniolo
ScorpionKing
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1150

Win XP

BeitragVerfasst: Mi 13.07.05 16:02 
Ok, war auch nur eine Vermutung! :wink:

_________________
Aus dem Urlaub zurück!
Danniolo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 693



BeitragVerfasst: 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)!
:wink: