![]() |
Indy. ATerminator, ganzen Text empfangen
hi,
habe mal wieder ein indy Problem. Wenn ich längeren Text sende teilt indy den text. Wie kann ich sicher gehen das der gesamte Text ankommt? Habe es schon so probiert
Delphi-Quellcode:
habe es auch schon mit einem Terminator probiert
var
fClient : TIdTCPClient; ... ... If Length(fClient.CurrentReadBuffer)>0 then begin Len := fClient.RecvBufferSize; lCommand.Text := fClient.ReadString(Len); ...
Delphi-Quellcode:
aber irgend wie funktioniert das ganze nicht so.....
fClient.ReadLn('#$%');
|
Re: Indy. ATerminator, ganzen Text empfangen
oder vielleicht doch mit Buffer arbeiten?
|
Re: Indy. ATerminator, ganzen Text empfangen
kann mir da keiner einen Tipp geben?
|
Re: Indy. ATerminator, ganzen Text empfangen
Hi Thomas,
Du kannst bei Indy10 und glaube ich auch bei Indy9, mit Readln + Terminator arbeiten. Ich arbeite häufig und viel mit beiden Indy-Versionen, habe bis jetzt nie Probleme mit ReadLn gehabt, wie lang ist den Dein String der gesendet wird ? Wie sieht der String aus ? Bist Du sicher das im String kein CrLF drin ist ? Greetz Data |
Re: Indy. ATerminator, ganzen Text empfangen
der string ist nicht gerade lang. 20-30 Zeichen.
Bin mir nich zu 100% sicher ob ein CRLF vielleicht doch drinne ist. muss mir den String nochmal genau anschauen..... Mit einem Terminator hat es gar nicht funktioniert..... aber ich glaube ..... dann muss ich mir das auch noch mal anschauen..... |
Re: Indy. ATerminator, ganzen Text empfangen
Hi,
in nem anderen Thread schreibst Du, das Du eine StringList verschickst. Wenn das der Fall ist ist hinter jedem Eintrag der StringList ein CrLF Greetz Data |
Re: Indy. ATerminator, ganzen Text empfangen
Hi Data,
ja das stimmt, aber ich ersetze diese durch ein anderes Zeichen. //Edit
Delphi-Quellcode:
stimmt doch nicht, sehe gerade das ich zwei listen habe :roll:
procedure TfrmMain.SendData(Command, Data: string);
var l : tstringlist; s : string; begin l := tstringlist.Create; l.Add(command); data := StringReplace(data,#13#10,'/13/10',[rfReplaceAll]); l.Add(data); fServer.Broadcast(l.text);//+'#$A' //#§&# Terminator l.Free; end; data -> stringlist.text und l.text |
Re: Indy. ATerminator, ganzen Text empfangen
Hi,
mach's am besten so :
Delphi-Quellcode:
Greetz Data
Var sToSend : String;
begin sToSend := StringReplace(yourStringList.CommaText,',','||'); // ... yourIndyClient.WriteLn(sToSend); end; |
Re: Indy. ATerminator, ganzen Text empfangen
werde ich morgen mal ausprobieren.
thx |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz