Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - String zerlegen


smepal - Mi 28.12.05 22:57
Titel: String zerlegen
habe folgendes Problem:

Ich habe ein Server und ein Clientsocket, welche sic Infos hin und her schicken. Dabei müssen mehrere Infos in Form von Ziffern auf ein mal also in eine clientsocket.sendtext verpackt werden. Das is ja kein Problem, aber wie kann ich den server den String wieder in die einzelnen Ziffern zerlegen lassen???


Born-to-Frag - Mi 28.12.05 23:06

Suchst du String[i]?

In einer for-schleife dürfte das kein problem sein..

greetz


smepal - Mi 28.12.05 23:12

ich möchte mehrere infos in einen string zb so 1:2:3:4:234:23
und dann eine procedure die mir die werte wieder zurückgibt also:
1
2
3
4
234
23


Born-to-Frag - Mi 28.12.05 23:19

user profile iconsmepal hat folgendes geschrieben:
ich möchte mehrere infos in einen string zb so 1:2:3:4:234:23
und dann eine procedure die mir die werte wieder zurückgibt also:
1
2
3
4
234
23


Kennst du die funktion pos?

ich würde es in eine while-schleife packen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
while pos(':', deinString) > 0 do
begin
  memo1.lines.add(copy(deinstring, 0, pos(':', deinString)-1));
  deinString := copy(deinString, pos(':', deinstring)+1, length(deinstring));
end;
memo1.lines.add(deinstring);


ungetestet aber sollte funkttionieren :)

greetz

EDIT: Fehler korrigiert!


BenBE - Mi 28.12.05 23:43

Such mal nach Suche in: Delphi-Forum, Delphi-Library EXPLODE Das sollte Dir helfen ...


delfiphan - Mi 28.12.05 23:54


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var
 I: Integer;
begin
  with TStringList.Create do
   try
    Delimiter := ':';
    DelimitedText := 'Ich:möchte:meinen:String:zerlegt:haben';
    for I := 0 to Count-1 do
     ShowMessage(Strings[I]);
   finally
    Free;
   end;
end;


smepal - Do 29.12.05 11:44

Vielen Dank funktioniert!!!