|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Загрузка файла из ФТП-сервера (TIdFTP)
Добрый день. Есть стандартный код загрузки файла из ФТП-сервера на HDD с помощью
Ftp.Get('access_log','d:\access_log',True); Все работает, но вообщето нужно загрузить файл не на жесткий диск а в TStringList или Memo (для наглядности). Содержимое файла потом будем парсить. Конечно можно записать файл на ЖД, потом загрузить в список и далее с ним работать. Вопрос: нет ли способа сразу загрузить файл в переменную? что то в интернете ничего не нашел, только Ftp.Get Также можно покритиковать выбор AfterClientLogin для загрузки файла (в интернетуме почемуто по другому) Код:
procedure TForm1.Button1Click(Sender: TObject); begin (*подключение к серверу*) if Ftp.Connected then begin Ftp.Disconnect; Label1.Caption:='Disconnected'; end else begin Ftp.Host:=Edit1.Text; (*передача адреса*) Ftp.Username:=Edit2.Text; (*передача логина*) Ftp.Password:=Edit3.Text; (*передача пароля*) Ftp.Port:=21; Ftp.Passive:=True; Ftp.ConnectTimeout:=2000; (*время ожидания до самоотключения?*) //Ftp.TransferType:=ftASCII; (*ftASCII по умол? пока не ясно для чего но и без работает*) Ftp.TransferType:=ftBinary; (*тип загрузки, можно удалить*) Ftp.Connect; AssErt(Ftp.Connected); (*в теории это проврка выполнения действия, обработка исключения*) if Ftp.Connected then Label1.Caption:='Connected to SERVER'; end; end; procedure TForm1.FtpAfterClientLogin(Sender: TObject); begin (*действия после подключения к серверу*) Ftp.ChangeDir(Edit4.Text); (*назначить путь к каталогу в задании*) DisplayFtp; (*отобразить в ЛистБокс результат работы, только для контроля*) Ftp.Get('access_log','d:\access_log',True); (*загрузить файл из сервера в указанное место на ЖД и перезаписать, вообще в СПИСОК нужно грузить и сразу обрабатывать и в БД*) end; procedure TForm1.DisplayFTP; begin (*Показать содержимое указанной папки*) ListBox1.Items.Clear; (*очистка ЛистБокс от прежних значений*) Ftp.List(ListBox1.Items, '', false); (*метод List получает список папок и файлов в виде строкового представления*) end; |
#2
|
||||
|
||||
Из описания класса TIdFTP:
Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
это понятно
Код:
Ftp.Get('access_log',mStream,True); mStream.Position:=0; Memo1.Lines.LoadFromStream(mStream); |