Wie wende ich diesen custom terminator an?
Ich denke mal ich hänge den beim writeln einfach an die Zeile an, aber was muss ich dann beim readln machen damit nur bis zu diesem Terminator gelesen wird??
Edit: Huch, den Post von Assertor hab ich garnich gesehn, schau ich mir gleich an
Edit2:
Habs jetzt mal umgebaut, aber jetzt kommt im Client scheinbar garnichtsmehr an. Muss ich auch den Server irgendwie umbauen?
Delphi-Quellcode:
procedure TClientReader.Execute;
var
LReadString : AnsiString;
LBuf : TIdBytes;
begin
while not Terminated
do
begin
sleep(10);
try
if Assigned(FClient)
and Assigned(FClient.IOHandler)
and FClient.Connected
then
begin
with FClient.IOHandler
do
try
CheckForDataOnSource(10);
if not InputBufferIsEmpty
then // InputBufferIsEmpty ist immer true
begin
LBuf:=nil;
InputBuffer.ExtractToBytes(LBuf);
LReadString:= BytesToString(LBuf);
if(Length(Trim(LReadString))>0)
then
begin
if Assigned(FClient.ReaderEvent)
then
begin
FClient.ReaderEvent(LReadString);
end;
end;
end;
except
on e : EIdClosedSocket
do SNLogger.Log('
TClientReader.Execute:EIdClosedSocket:'+e.ClassType.ClassName+'
:'+e.
message);
on e : EIdReadTimeout
do SNLogger.Log('
TClientReader.Execute:EIdReadTimeout:'+e.ClassType.ClassName+'
:'+e.
message);
on e : EIdException
do SNLogger.Log('
TClientReader.Execute:EIdException:'+e.ClassType.ClassName+'
:'+e.
message);
on e :
exception do SNLogger.Log('
TClientReader.Execute:Exception:'+e.ClassType.ClassName+'
:'+e.
message);
end;
end;
except
on e :
exception do
begin
SNLogger.Log('
TClientReader.Execute:'+e.ClassType.ClassName+'
:'+e.
Message);
exit;
end;
end;
end;
end;