Hallo,
ich hab nen kleines Problem mit ner Split function(wenn es wirklich daran liegt). Ich hoffe ihr koennt mir weiterhelfen.
Also. Es ist so - ich bekomm vom Server ein String geschickt in der die clients die online sind gespeichert sind.
zbs.: Clients_online := 'Chris:Bobi:Marc:Oli';
Nun mein code sieht so aus:
lbClients ist in dem Fall ein ListBox.
Delphi-Quellcode:
i := 0;
while not (split(Clients_online, ':', i) = '') do
begin
lbClients.Items.Add(split(Clients_online, ':', i));
i := i+1;
end;
Die Split function sieht so aus:
Delphi-Quellcode:
function split(input:
string; schar: Char; s: Integer):
string;
var
c:
array of Integer;
b, t: Integer;
begin
Dec(s, 2);
// for compatibility with very old & slow split function
t := 0;
// variable T needs to be initialized...
setlength(c, Length(input));
for b := 0
to pred(High(c))
do
begin
c[b + 1] := posex(schar, input, succ(c[b]));
// BREAK LOOP if posex looped (position before previous)
// or wanted position reached..
if (c[b + 1] < c[b])
or (s < t)
then break
else
Inc(t);
end;
Result := Copy(input, succ(c[s]), pred(c[s + 1] - c[s]));
end;
Die hab ich uebrigens von dem DelphiSwissCenter.
Es Funktioniert wunderbar wenn der String so heisst 'Chris:'.
Aber sobald so ein String 'Chris:Bobi:Oli' kommt. Ensteht ein Totales durcheinander.
Das wird nicht so aufgelistet:
Chris
Bobi
Oli
sondern
Chris
chris
Oli
Wenn nur 2 String kommen ('Chris:Bobi') entstehen ploetzlich 3 clients. Dass hier: Chriss,Oli, Oli
Das ist mir ein Megaraetzel. Ich hoffe ihr koennt mir Helfen.
Gruss Marc
Ps.: Sry wegen der Englischen Tast. Aber ich hab nen Englisches Notebook
^^