Entwickler-Ecke
Sonstiges (Delphi) - Wie kann ich einen String zerteilen?
Pyr0cracker - Fr 28.03.03 18:33
Titel: Wie kann ich einen String zerteilen?
HI, gibts irgendeine Möglichkeit einen String an einer bestimmten Stelle zu teilen?
Quelltext
1: 2: 3: 4: 5: 6:
| die ganze variable: ganzer_text:='pyr0cracker[b]&[/b]niedersachsen'
die geteilten: name:='pyr0cracker' adresse:='niedersachsen' |
ich meine das so das ich z.b. beim
& den string teile.
danke im vorraus
Delete - Fr 28.03.03 18:46
pos, copy. Rest siehe Hilfe.
Wolff68 - Fr 28.03.03 21:27
Mal auf die schnelle:
Quelltext
1: 2:
| name := Copy(ganzer_text, 0, Pos('[', ganzer_text)-1); adresse := Copy(ganzer_text, Pos('/b]', ganzer_text)+1, Length(ganzer_text); |
ungetestet
Mit dem +1 und -1 musst eventuell ein bischen experimentieren.
Pyr0cracker - Sa 29.03.03 01:06
Danke Wolff68, genau das habe ich gesucht.
gruß,
Pyr0cracker - Sa 29.03.03 18:02
| Zitat: |
Quelltext 1: 2:
| name := Copy(ganzer_text, 0, Pos('[', ganzer_text)-1); adresse := Copy(ganzer_text, Pos('/b]', ganzer_text)+1, Length(ganzer_text); | |
ist gut, aber kann ich den String auch in mehr als 2 Teile spalten?
also man müsste irgendwie "weitersuchen" können...
bsp:
gesamt='eins&zwei&drei&vier&etc...';
teil1:='eins';
teil2:='zwei';
teil3:='drei';
teil4:='vier';
teil5:='etc ...';
Moderiert von
Tino: Moderiert.
gruß
Stonebreaker - So 30.03.03 17:02
lol :D
CenBells - So 30.03.03 21:39
nee nicht explode,
aber im ernst, du könntest dir eine art explode selber schreiben, ist doch nicht so aufwendig. Übergibst den Delimiter und dann musst du halt nen Array zurückgeben...
Und in der Funktion machst du das, wie oben schon gesagt, in einer schleife, mit der abbruchbedingung
while pos(delimiter, AText) > 0 do begin
end;....
Gruß
Ken
Delete - So 30.03.03 22:23
Dürfte ich den Herren mal bitten auf den Link zu klicken, da er es anscheinend nicht getan hat. :evil:
Pyr0cracker - Mo 31.03.03 09:49
| Luckie hat folgendes geschrieben: |
| Dürfte ich den Herren mal bitten auf den Link zu klicken, da er es anscheinend nicht getan hat. :evil: |
meinst du mich? *angsthab*
ich hab doch gar nichts gesagt, aber die methode mit explode ist gut,
danke.
Delete - Mo 31.03.03 10:27
Nein, ich meine Cenbells.
CenBells - Mo 31.03.03 20:37
:autsch: da hab ich wohl etwas vorschnell gesch(l)ossen.
Ich dachte, der link würde zur php funktion explode gehen.
nicht böse sein :wink: :wink: :wink:
Gruß
Ken
berni - Di 01.04.03 13:52
Explode ist ja auch ganz nett.
Ich hatte mir mal sowas gebastelt als Schnellschuss, ging für meine Zwecke auch ...
Gruss,
Bernd
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| function TfrmXYZ.split(input:string; schar:char; s:integer): string; { Diese Funktion nimmt einen String INPUT, einen Delimiter SCHAR und einen Positionswert S und gibt den Teilstring zurück, der vor dem S-ten auftreden von SCHAR steht. INPUT:="Hallo -/- Welt" , SCHAR:="/", S:=1 -> RETURN: "Hallo -" INPUT:="Hallo -/- Welt" , SCHAR:="/", S:=2 -> RETURN: "- Welt" INPUT:="Hallo -/- saublöde -/- Welt" , SCHAR:="/", S:=2 -> RETURN: "- saublöde -" } var i,n: integer; schop: string; begin n := 0; for i := 1 to length(input) do begin if (input[i] = schar) then begin inc(n); if n = s then begin split := schop; exit; end else schop := ''; end else begin schop := schop + input[i]; end; end; split := schop; end; |
Moderiert von
Tino: Code-Tags hinzugefügt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!