Thema: Delphi ClientSocket und IRC

Einzelnen Beitrag anzeigen

Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#5

Re: ClientSocket und IRC

  Alt 14. Mär 2005, 03:27
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 :\
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat