Entwickler-Ecke
Sonstiges (Delphi) - teile eines strings durch einen andern ersetzen
Janoschka - Mo 08.07.02 20:52
Titel: teile eines strings durch einen andern ersetzen
Also ich code sonst mehr PHP und vermisse in DELPHI die ganze Zeit schon die funktion [neuer_string] = str_replace([zu_ersetzender], [ersetzender], [alter]);
Gibt es also in Delphi ne funktion mit der ich z.B. im String: "php is leichter als delphi"; das leichter durch schwerer ersetzen kann???
MrSpock - Mo 08.07.02 22:16
Hallo Janoschka,
eine solche Procedure gibt es nicht, aber du kannst sie selber wie folgt schreiben:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure Str_Replace(var str: String; alt, neu: String); var posi, i : Integer; hstr : String; begin posi := Pos(alt, str); if posi > 0 then begin hstr := ''; for i := 1 to posi -1 do hstr := hstr +str[i]; hstr := hstr +neu; for i := posi +length(alt) to length(str) do hstr := hstr +str[i]; str := hstr; end; end; |
Diese Procedure ersetzt nur das erste vorkommen und ist "casesensitiv". Du müsstest sie also anpassen, wenn das nicht so gewünscht ist.
Pit - Mo 08.07.02 22:21
Janoschka - Mo 08.07.02 22:53
Ich habe delphi 6 - kannste mal bitte dann so eine funktion posten? is dringend - oder aber MrSpock postet eine die alle strings ersetzt - danke!
Pit - Mo 08.07.02 23:40
MrSpock - Di 09.07.02 07:48
Hallo Janoschka,
manchmal frage ich mich, warum jemand überhaupt eine Antwort gibt, wenn es im wesentlich darum geht einen, der eine Frage stellt als Trottel darzustellen...
Hier mein Vorschlag:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure Str_Replace(var str: String; alt, neu: String); var posi, i : Integer; hstr : String; begin repeat posi := Pos(alt, str); if posi > 0 then begin hstr := ''; for i := 1 to posi -1 do hstr := hstr +str[i]; hstr := hstr +neu; for i := posi +length(alt) to length(str) do hstr := hstr +str[i]; str := hstr; end; until posi = 0; end; |
Maxigraf - Di 09.07.02 09:02
Vllt. hilft euch das weiter:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| StringReplace gibt einen String mit ersetzten Sub-Strings zurück.
Unit
SysUtils
Kategorie
String-Verarbeitung
type TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase); function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
Beschreibung
Mit StringReplace ersetzen Sie in dem angegebenen String den im Parameter OldPattern festgelegten Sub-String mit dem im Parameter NewPattern übergebenen neuen Sub-String. StringReplace nimmt an, daß der String Multibyte-Zeichen enthalten kann.
Wenn im Parameter Flags nicht rfReplaceAll enthalten ist, wird nur das erste Vorkommen von OldPattern im String S ersetzt. Andernfalls werden alle Instanzen von OldPattern durch NewPattern ersetzt.
Wenn der Parameter Flags rfIgnoreCase enthält, wird die Groß-/Kleinschreibung nicht berücksichtigt. |
P.S.: Is aus der Delphi 6.0 Hilfe :D
MfG Maxigraf
Pit - Di 09.07.02 12:40
MrSpock - Di 09.07.02 12:47
Hallo Pit,
nein ich bin nicht verärgert wegen deiner Kritik. Ich finde nur bei einigen deiner Postings den Ton unangemessen. In der Sache mit Bezug auf Hilfe zur Selbsthilfe bin ich deiner Meinung.
Janoschka - Di 09.07.02 13:50
AAAlso erstmal Danke für die Hilfe.
Danke auch an PIT für den Hinweis wo ich ne funktionsreferenz finde - das wusste ich nicht und damit is mir sehr geholfen.
Der Rest deines Posts is jedoch nicht so das Wahre - irgendwie hat's so den Beigeschmack, als ob du glauben würdest du wärst der leeteste coder und ich ein noob.
Dazu kann ich nur sagen, dass ich Delphi noch nicht so drauf habe - was aber keines wegs heißt, dass ich nicht programmieren kann - Programmieren heißt nicht gleich Delphi.
Mit deinem Posting bezüglich der Art und weise wie man jemandem hilf kann ich mich gut anfreunden.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!