Thema: Delphi ClientSocket und IRC

Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#4

Re: ClientSocket und IRC

  Alt 14. Mär 2005, 03:05
Moin!

CR = Carriage Return - also Cursor zurück zum Anfang der Zeile
LF = Line Feed - also eine Zeile vorrücken.

Zusammen ergibt das dann einen Zeilenvorschub und der Cursor steht in dieser neuen Zeile ganz links...

Und wie ich es mir vorstelle:

Delphi-Quellcode:
Procedure ClientsocketRead...
Var
  lSL : TStrings;
  i : Integer;
  lData : String;
Begin
  lSL := TStringList.Create;
  Try
    lSL.Text := Socket.ReceiveText; // die StringList teilt das auf in die Zeilen
    
    For i := 0 To lSL.Count-1 Do // nun die Zeilen nacheinander durchgehen und jeweils drum kümmern...
    Begin
      lData := lSL[i];

      If ( Pos('JOIN', lData) > 0 ) Then
      Begin
        Delete(lData, 1, Pos('JOIN', lData)+5);
        ListBox1.Items.Add(lData); // Chan unnötig, da nach dem Delete() lData nur noch den Chan enthalten kann...
      End;
    End;
  Finally
    lSL.Free;
  End;
End;
Sowas in der Richtung. Keine Garantie das es auf Anhieb läuft, ist ebend mal so aus'm Hirn gequetscht...

Wichtig! ReceiveText() des Socket gibt keine Sicherheit das immer komplette Zeilen ankommen! Es ist sehr gut möglich das dein OnClientRead mehrfach aufgerufen wird, bevor du überhaupt eine komplette Zeile empfangen hast. Es kann also gut sein, das du ein "JOIN" empfängst, aber der Channelname der dahinter kommt, den bekommste erst beim nächsten Aufruf von OnClientRead! Darauf will ich noch hinweisen...

MfG
Muetze1
  Mit Zitat antworten Zitat