![]() |
|
|
|
|
#1
|
|||
|
|||
|
Суть куска программы:
Содержимое memo сохранить в файл, файл залить на ftp, удалить локальный файл. код Код:
procedure Form.sendClick(Sender: TObject);
begin
begin
if idftp1.Connected then
begin
idftp1.ChangeDir('as');
memo1.Lines.SaveToFile(TPath.Combine(TPath.GetSharedDocumentsPath, 'test.txt')) ; //сохранили локально
if FileExists(TPath.Combine(TPath.GetSharedDocumentsPath, 'test.txt')) then //проверили наличие
begin
idftp1.Put(TPath.Combine(TPath.GetSharedDocumentsPath, 'test.txt')) ; //отправили
deleteFile(TPath.Combine(TPath.GetSharedDocumentsPath, 'test.txt')) ; //грохнули
memo1.Lines.Clear;
idftp1.Disconnect;
end;
end;
end;
end;Вопрос. Можно ли сделать сохранение сразу на сервак, без локального файла? |
|
#2
|
||||
|
||||
|
Можно текст из мемо сохранить в поток минуя физфайл и его отправить на ftp-сервер
Кстати, у вас в хексах видимо какая-то другая idftp.рut, поскольку семёрочная процедура вызывается как Код:
... IdFTP1.Put(Path + '\test.txt','test.txt' , false); ... |
|
#3
|
|||
|
|||
|
"Сохранить в поток" звучит круто.
Подскажите как это в виде кода выглядит или хотя бы где копать примеры. |
|
#4
|
|||
|
|||
|
Цитата:
Как то так: Код:
var
Stream : TMemoryStream;
begin
Stream := TMemoryStream.Create;
Try
Memo1.SaveToStream(Stream);
...
Finally
Stream.Free;
End;
end; |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
DarkMoth (21.11.2016)
| ||
|
#5
|
||||
|
||||
|
[offtop]Вот grand merci un que merci beaucoup, bro lmikle, поддержал, пока я клиентских львят лечил
[/offtop] а загрузить поток (там, где ...) можно такКод:
... Stream.Position := 0; IdFTP1.Put(Stream, 'test.txt' , false);// "проверено электроникой" в D7 ... |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
DarkMoth (21.11.2016)
| ||
|
#6
|
|||
|
|||
|
А есть вариант сделать это через стринглист?
|
|
#7
|
||||
|
||||
|
У Memo Lines и есть StringList
|