我想将Memo1中的数据直接放到我的FTP服务器上,我有代码:
procedure TForm5.SendClick(Sender: TObject);
var K: TStream;
begin
K := TStream.Create;
Memo1.Lines.SaveToStream(K);
FTP.Host := 'localhost';
FTP.Username := 'login';
FTP.Password := 'haslo';
FTP.Connect;
if FTP.Connected then FTP.Put(K,'');
end;
但是当我点击“发送”按钮时,我有两个错误:
当备忘录为空时
当我尝试发送数据时
答案 0 :(得分:1)
TStream
是一个抽象类。你永远不能实例化它。比如使用具体类,例如TMemoryStream
。
当你完成它时,你也想要破坏它,否则它会泄漏。帮自己一个忙,并将ReportMemoryLeaksOnShutdown
设置为True
,例如在.dpr文件中。这样,您就可以获得程序终止时泄漏的所有内存的报告。
您的代码可能会像这样运行:
var
Stream: TMemoryStream;
....
Stream := TMemoryStream.Create;
try
// .... initialize the Indy object
if FTP.Connected then begin
// .... populate stream
Stream.Position := 0;
FTP.Put(Stream, '');
end;
finally
Stream.Free;
end;