du könntest das ganze auch parsen...
erstmal ersetzt du alle #13 durch #10 in deinem string, dann löscht du doppelte #10er (sofern vorhanden, nicht alle server senden beides) und dann führst du den string in einer schleife aus, bis dieser leer ist...das ganze sieht dann ca so aus:
command1#10command2#10command3#10command4#10...
also kopierst du bis #10 -1 und löscht bis #10.
so ca:
Delphi-Quellcode:
{ Alle #13er durch #10er ersetzen und doppelte #10er löschen(sofern vorhanden). }
ConArray[i].Queue := ConArray[i].Queue + ReceiveText;
while pos(#13, ConArray[i].Queue) <> 0 do
ConArray[i].Queue[pos(#13, ConArray[i].Queue)] := #10;
while pos(#10#10, ConArray[i].Queue) <> 0 do
delete(ConArray[i].Queue, pos(#10#10, ConArray[i].Queue), 1);
{ Alle Befehle aus der Queue verarbeiten }
while pos(#10, ConArray[i].Queue) <> 0 do
begin
case IdxArrStr(CommandArray, GetTok(s, 1, #32)) of
0: {JOIN}
begin
// Do Something
end;
1: {PART}
begin
end;
end;
Delete(ConArray[i].Queue, pos(#10, ConArray[i].Queue));
end;
Hab damals viel mit
irc gemacht =)
BTW: ich finds gut das du keine fertige kompos nimmst, sowas sieht man hier leider selten :\