![]() |
String anhand eines Zeichens trennen
Ich hab schon überall gesucht, aber irgendwie nichts gefunden was ich brauchen kann..
Ich möchte einen String anhand eines Zeichens trennen, also z.B. das aus dem String "Hallo|Tschüß" zwei Variablen entstehen, in der ersten steht dann "Hallo", und in der zweiten "Tschüß". Als Trennzeichen hat dabei das "|" gedient. In PHP würde das so in etwa gehen:
Code:
Leider ist mir Delphi nicht so geläufig wie PHP, so wäre ich sehr dankbar wenn jemand das Codebeispiel mal in Delphi machen könnte..
list($teil1, $teil2) = explode("|", "Hallo|Tschüß");
DANKE |
Re: String anhand eines Zeichens trennen
|
Re: String anhand eines Zeichens trennen
Delphi-Quellcode:
str1:=Copy(deinstr, 1, pos('|', deinstr)-1);
str2:=Copy(deinstr, pos('|', deinstr)+1, length(deinstr)); |
Re: String anhand eines Zeichens trennen
Wenn man mehr als 2 Teile hat, wird das nicht funktionieren. Dann müsste man mit ner Schleife und PosEx arbeiten.
|
Re: String anhand eines Zeichens trennen
danke für die schnelle antwort, ich habe jetzt durch den Link zu explode noch was gefunden, nähmlich das hier:
Delphi-Quellcode:
Allerdings habe ich damit noch ein Problem, nämlich das ich eine Fehlermeldung bekomme, das der Typ TStringDynArray undefiniert sei. Als Hilfe stand noch unter dem Post das man
// Explode trennt S in die durch Separator getrennten Elemente auf. Wenn Limit
// > 0 ist, so werden max. Limit Elemente getrennt, wobei im letzen Element // die Restzeichenkette steht. function Explode(const Separator, S: string; Limit: Integer = 0): TStringDynArray; var SepLen: Integer; F, P: PChar; ALen, Index: Integer; begin SetLength(Result, 0); if (S = '') or (Limit < 0) then Exit; if Separator = '' then begin SetLength(Result, 1); Result[0] := S; Exit; end; SepLen := Length(Separator); ALen := Limit; SetLength(Result, ALen); Index := 0; P := PChar(S); while P^ <> #0 do begin F := P; P := AnsiStrPos(P, PChar(Separator)); if (P = nil) or ((Limit > 0) and (Index = Limit - 1)) then P := StrEnd(F); if Index >= ALen then begin Inc(ALen, 5); SetLength(Result, ALen); end; SetString(Result[Index], F, P - F); Inc(Index); if P^ <> #0 then Inc(P, SepLen); end; if Index < ALen then SetLength(Result, Index); end; das hier definieren sollte:
Delphi-Quellcode:
Allerdings weiß ich nicht so genau wo das hin muss, bin leider noch recht neu in der Sprache,
type TSTringdynarray = array of String;
nochmal DANKE für die Hilfe! :-D |
Re: String anhand eines Zeichens trennen
Na oben im interface-Abschnitt. Gleich nach dem uses-Zeugs.
|
Re: String anhand eines Zeichens trennen
Zitat:
|
Re: String anhand eines Zeichens trennen
Die Frage hatten wir schon oft und ich kenne 3 Beitrage die sei mit gutem Code lösen (Ein Beitrag von mir :dance: :mrgreen: ):
![]() ![]() ![]() Gruß Alexander |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz