Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   String in drei teilen (https://www.delphipraxis.net/159033-string-drei-teilen.html)

fox67 11. Mär 2011 13:05

String in drei teilen
 
ich habe einen string der so aussieht "test|test1|test2" nun will ich daraus 3 strings machen die dann so ausehen "test", "test1", "test2". weiß jeman wie dass funktioniert

mkinzler 11. Mär 2011 13:07

AW: String in drei teilen
 
-StringListe (Delimiter/DelimitedText)
-Delphi-Referenz durchsuchenExplode()

fox67 11. Mär 2011 13:11

AW: String in drei teilen
 
in einem php scribt sieht dass so aus
Code:
 $ausgabe = stripslashes($ausgabe);
   $zerlegen = explode("|", $ausgabe);
wie sieht dass in delphi aus.

mkinzler 11. Mär 2011 13:13

AW: String in drei teilen
 
Lösung per Stringliste
Delphi-Quellcode:
var
  sl: TStrings;
...
begin
  sl := TStringlist.Create;
  sl.Delimiter := '|';
  sl.DelimitedText := 'test|test1|test2';
  ...
  sl.Free;
sl.Strings[0] enthält dann 'test1';

fox67 11. Mär 2011 13:21

AW: String in drei teilen
 
Zitat:

sl.Strings[0] enthält dann 'test1'
nicht 'test'?

scrat1979 11. Mär 2011 13:21

AW: String in drei teilen
 
Entweder eine StringListe wie von mkinzler schon genannt oder Du bastelt Dir eine eigene Funktion:

z.B.

Delphi-Quellcode:
procedure ExplodeString(DelimitedString : String; VAR Part1, Part2, Part3 : String);
begin
  (* Erster Teil *)
  Part1 := copy(DelimitedString, 1, Pos('|', DelimitedString)-1);
  (* Zweite Teil *)
  DelimitedString := Delete(DelimitedString, 1, Pos('|', DelimitedString));
  Part2 := copy(DelimitedString, 1, Pos('|', DelimitedString)-1);
  (* Dritter Teil*)
  Part3 := copy(DelimitedString, Pos('|', DelimitedString)+1, Length(DelimitedString));
end;
Aufruf:

Delphi-Quellcode:
 VAR GanzerString, Teil1, Teil2, Teil3 : String;
 [...]
 GanzerString := 'ErsterTeil|ZweiterTeil|DritterTeil';
 ExplodeString(GanzerString, Teil1, Teil2, Teil3);
 ShowMessage(Teil1);
 ShowMessage(Teil2);
 ShowMessage(Teil3);
end;
[/DELPHI]

... Ungetestet!

aurikel_Max 11. Mär 2011 13:37

AW: String in drei teilen
 
Zitat:

Zitat von fox67 (Beitrag 1087698)
Zitat:

sl.Strings[0] enthält dann 'test1'
nicht 'test'?

sl.Strings[0] enthält 'test', wenn du "test|test1|test2" einliest - er ist wahrs. davon ausgegangen, dass die Teile test1, test2 und test3 heißen. ;)

fox67 11. Mär 2011 13:37

AW: String in drei teilen
 
scrat1979 ich habe dein code mal ausprobiert da der von mkinzler nicht funktioniert hatt aber es kommen folgende fehlermeldungen:
[Error] Unit2.pas(30): Incompatible types: 'String' and 'Integer'
[Error] Unit2.pas(32): Incompatible types: 'String' and 'procedure, untyped pointer or untyped parameter'
[Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit2.pas'

-187- 11. Mär 2011 13:38

AW: String in drei teilen
 
Wobei die Funktion nicht auf 3 Parts begrenzt sein sollte :)

Schöner wäre eine while-do Schleife und als Result ein dynamisches Array :)

-187- 11. Mär 2011 13:39

AW: String in drei teilen
 
Na wie wäre es mal mit selber testen ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz