Wobei ich frage mich gerade, ob ein Doppelpunkt im Channelnamen erlaubt ist?
Also neue Version! Ergebnis müsste "Testnick ~PhilmacFLy" sein:
Delphi-Quellcode:
NickOffset := PosEx(':', s, ChannelOffset) + 1;
LineEnd := // s.u.
Nicks := Copy(s, NickOffset, LineEnd - NickOffset
Sollte ein Doppelpunkt, aber kein Leerzeichen erlaubt sein, dann kann man meine alte Version verwenden, muss dann aber sttt +1 +2 addieren. Auch könnte man zusätzlich den Suchstring (Z.Zt. noch ' ') in ' :' ändern.
Achso LineEnd wird falsch berechnet. Und zwar sollte das eigentlich unabhängig voneinander arbeiten. Also sofern du #13 oder #10 findest. Aber wenn er es nicht findet, kommt ja 0 raus, und würde damit als "LineEnd" gewertet werden.
Deshalb die verbesserte Version:
Delphi-Quellcode:
LineEnd13 := Pos(#13, s);
LineEnd10 := Pos(#10, s);
if ((LineEnd13 > LineEnd10) and (LineEnd10 > 0)) or (LineEnd13 = 0) then
LineEnd := LineEnd10
else
LineEnd := LineEnd13
Also, wenn kein #13er Zeichen vorkommt, oder es nach dem #10er Zeichen steht, welches Vorkommt, dann nimmt er das #10er Zeichen ansonsten das #13er
MfG
xZise