4

ディスクに保存せずに、送信されたテキストファイルを memo.lines に表示しようとしていました

サーバーから

  try
  Ms := TMemoryStream.Create;
  Ms.LoadFromFile('update.txt');
  Ms.Position := 0;

  AContext.Connection.IOHandler.LargeStream := True;
  AContext.Connection.IOHandler.Write(Ms, 0, True);
  finally
    Ms.Free;
  end;

クライアントへ...クライアントでこれを行う方法がわかりません

  try
   Ms := TMemoryStream.Create;
   Ms.Position := 0;

   IdTCPClient1.IOHandler.LargeStream := True;
   IdTCPClient1.Connection.IOHandler.ReadStream(Ms, -1,false);

 finally
   Memo1.Lines.LoadFromStream(Ms);
   Ms.Free;
 end;

可能であれば、この作業を行う方法について誰かが私を助けることができますか?

4

2 に答える 2

3

コードは問題ありません。Memo のメソッドPositionを呼び出す前に、ストリームのプロパティを 0 にリセットするのを忘れただけです。LoadFromStream()

IdTCPClient1.Connection.IOHandler.ReadStream(Ms, -1,false);
Ms.Position := 0; // <-- add this
Memo1.Lines.LoadFromStream(Ms);
于 2013-08-05T15:41:43.797 に答える