Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Закачка файла с ftp-сервера [D6]


Страницы:   1 2

Helen ©   (2006-11-15 10:54:00) 

Добрый день! Пытаюсь скопировать файл с ftp-сервера двумя способами, и не один не проходит.

1: средствами WinInet, при использовании функции FtpFindFirstFile(MyFTP, PChar(FileName), sRec, 0, 0) не могу понять какого типа должна быть sRec. Может туплю?

2: средствами Indy, сначала все нормально: коннектится, делается
  MyFTP.List(FielList, '*.dbf', false),
  а MyFTP.Get(FileList.Strings[i], 'c:\Test\'+IntToStr(i)+'.dbf'); не проходит


Anatoly Podgoretsky   (2006-11-16 16:48:00) [1]

> Helen  (16.11.2006 14:18:21)  [21]

Отлично, это я хотел из тебя вытянуть, в Windows АПИ нет типа Boolean, только производные до Bool
С Bool лучше работать так Bool =/<> False тогда гарантируется правильность во всех случаях и не в коих случаяч не с True


Helen   (2006-11-16 14:56:00) [2]

Разобралась, просто в цикле не все хендлы закрыла.


Сергей М.   (2006-11-16 14:39:00) [3]


> Helen   (16.11.06 14:18) [21]


Ты про notвникла ?


Helen   (2006-11-16 14:18:00) [4]

Это не из Инди, это из WinInet.


Anatoly Podgoretsky   (2006-11-16 13:06:00) [5]

> Helen  (16.11.2006 12:24:19)  [19]

Мне казалось это не функция Дельфи, или это из Инди?


Helen   (2006-11-16 12:24:00) [6]

по документации должно возвращать Boolean


Anatoly Podgoretsky   (2006-11-16 12:13:00) [7]

> Helen  (16.11.2006 11:14:15)  [15]

Не надо ли not добавить

until not InternetFindNextFile(hFind, @sRec);

А оно точно boolean возвращает, есть большое сомнение.


Helen   (2006-11-16 12:08:00) [8]

Да, у меня есть все проверки и hFind<>nil. Просто не стала весь код писать.


Dmitrij_K   (2006-11-16 12:04:00) [9]

Для начала надо проверять результат FtpFindFirstFile
hFind:=FtpFindFirstFile
if hFind<>nil then
repeat
until InternetFindNextFile


Helen   (2006-11-16 11:14:00) [10]

В продолжение темы. Объясните неразумной, что не так делаю:

 hFind:=FtpFindFirstFile(hFTP, PChar('*.dbf'), sRec, 0, 0);
 repeat
    ...  
 until InternetFindNextFile(hFind, @sRec);

почему не ищется следующий файл?


iXT   (2006-11-15 17:05:00) [11]


> Helen   (15.11.06 12:37) [12]

Так я разве против?


Anatoly Podgoretsky   (2006-11-15 13:47:00) [12]

> Helen  (15.11.2006 12:37:12)  [12]

А как же :-)


Helen   (2006-11-15 12:37:00) [13]

И это замечательно!!!


iXT   (2006-11-15 11:50:00) [14]

Helen   (15.11.06 10:54)  

Helen   (15.11.06 11:35) [10]

Как девушкам все хотят помочь :)


Helen   (2006-11-15 11:35:00) [15]

В Indy не проходит само копирование файла: MyFTP.Get(FileList.Strings[i], 'c:\Test\'+IntToStr(i)+'.dbf');
Но мне лучше пользоваться WinInet, т.к. пишу консольное приложение и весит оно в этом случае намноого меньше, чем с Indy.


umbra   (2006-11-15 11:32:00) [16]

а в инди то что "не проходит"?


Сергей М.   (2006-11-15 11:31:00) [17]


> я так долго искала, где же описана структура _WIN32_FIND_DATA


Надо было просто поручить опер.системе выполнить поиск)

Меню Пуск -> Найти ... -> Файлы, имеющие расширение *.pas и содержащие такой-то текст


SpellCaster   (2006-11-15 11:31:00) [18]

> [5] Helen   (15.11.06 11:26)

Виндовый поиск файла *.pas, содержащего текст WIN32_FIND_DATA, помог бы тебе за две минуты.


Helen   (2006-11-15 11:30:00) [19]

А насчет http://forum.vingrad.ru/index.php?showtopic=55273&view=findpost&p=439445, именно с этого примера я и начала. Только вот еще вопрос, почему нужно открывать файл и записывать его частями, нет ли какой-нить функции типа CopyFile, чтобы сразу весь?


Helen   (2006-11-15 11:26:00) [20]

Спасибо! Спасибо! Спасибо!
uses Windows помогло, а я так долго искала, где же описана структура _WIN32_FIND_DATA


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо