Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.09.2006, 21:21
DIMzOne DIMzOne вне форума
Прохожий
 
Регистрация: 12.09.2006
Сообщения: 5
Репутация: 10
По умолчанию IdFTP - проблема с параметром.

После соединения с фтп сервером и забивания каталогов в ListBox, пытаюсь определить файл это или папка
Цитата:
if IdFTP1.DirectoryListing.Items[ListBoxDirectory.ItemIndex].ItemType =ditDirectory
и т.д.
Ну и он мне грит типа индекс вне нужной границы - "List index out of bounds"
Это кстати взято из примера в исходниках.
Так вот, может есть обходной путь?

Последний раз редактировалось DIMzOne, 12.09.2006 в 21:25.
Ответить с цитированием
  #2  
Старый 13.09.2006, 11:13
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию

А ты поставь брейкпойнт на эту строку и посмотри в окне Debug windows->Watches какое значение у ListBoxDirectory.ItemIndex и какое значение у IdFTP1.DirectoryListing.Count (или IdFTP1.DirectoryListing.Items.Count, к сожалению не юзаю этот компонент и точно не скажу, обычно с фтп вручную, апями работаю...) и провер, скорее всего у тебя значение ListBoxDirectory.ItemIndex болше, чем Count, чего, естественно не должно быть...
Хотя, может, я и не прав....
__________________
THE CRACKER IS OUT THERE
Ответить с цитированием
  #3  
Старый 13.09.2006, 12:55
DIMzOne DIMzOne вне форума
Прохожий
 
Регистрация: 12.09.2006
Сообщения: 5
Репутация: 10
По умолчанию

IdFTP1.DirectoryListing.Items.Count = 0
IdFTP1.DirectoryListing.DirectoryName пустое
Name:=IdFTP1.DirectoryListing.Items[0].FileName вообще не удается вычислить. Получается что он не забивает индексы директорий в свой список.
Может при коннекте это както можно сделать?
IdFTP1.DirectoryListing.Assign(IdFTP1.List); не получается
Ответить с цитированием
  #4  
Старый 13.09.2006, 17:25
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию

1. Если IdFTP1.DirectoryListing.Items.Count = 0, то IdFTP1.DirectoryListing.Items[0] естественно не будет присутствовать, т.к. элементов в этом листинге нет вообще.
2. Не могу сказать точно, но скорее всего не
IdFTP1.DirectoryListing.Assign(IdFTP1.List);
а
IdFTP1.DirectoryListing.Items.Assign(IdFTP1.List);
3. Используй IdFTP1.DirectoryListing.Items.Add(...) и тому подоное для добавления и манупуляций с элементами в листинге
А для полученя значений элементов используй
IdFTP1.DirectoryListing.Items.Strings[n], где n - число.
Все это я говорю основываясь на предположении, что IdFTP1.DirectoryListing.Items имеет тип TStrings
Вобщем пиши, что как.
__________________
THE CRACKER IS OUT THERE
Ответить с цитированием
  #5  
Старый 13.09.2006, 19:37
DIMzOne DIMzOne вне форума
Прохожий
 
Регистрация: 12.09.2006
Сообщения: 5
Репутация: 10
По умолчанию

IdFTP1.DirectoryListing.Items.Assign(LS или IdFTP1.List) работает только с отдельными значениями items[] так что этот вариант отподает
IdFTP1.DirectoryListing.Assign(LS или IdFTP1.List) - несовпадение типов
Пробую задавать IdFTP1.DirectoryListing.DirectoryName:=DirName; в функции смены директории, так после этого он серавно остается пустым.
IdFTP1.DirectoryListing.Assign(ListBoxDirectory.It ems); вообще завис всю систему
Но после добавления пустого значения в IdFTP1.DirectoryListing.Add - ошибки больше не выдает
тока вот проблема с присваиванием (нужно как то получить тип IdFTPListItem)
Немогу понять в чем касяк
4kusNick у тебя есть пример исходника от Indy с использованием этого компонента?

Последний раз редактировалось DIMzOne, 13.09.2006 в 19:43.
Ответить с цитированием
  #6  
Старый 14.09.2006, 10:51
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию

К сожалению, я не юзал Indy, всегда с фтп работал через апи =(
Надеюсь, местные мастера помогут.
__________________
THE CRACKER IS OUT THERE
Ответить с цитированием
  #7  
Старый 19.09.2006, 10:59
Simbar Simbar вне форума
Прохожий
 
Регистрация: 15.07.2006
Сообщения: 24
Репутация: 10
По умолчанию

http://www.projectindy.org/DemoDownl...os_26Oct04.zip для 9 Indy
http://www.indyproject.org/DemoDownl..._FTPClient.zip для 10.
Давно писал на Indy поисковик. Исходники есть только дома. Сейчас домступа к ним не имею
Ответить с цитированием
  #8  
Старый 20.09.2006, 09:15
DIMzOne DIMzOne вне форума
Прохожий
 
Регистрация: 12.09.2006
Сообщения: 5
Репутация: 10
По умолчанию

Simbar спс. Ща посмотрим
Ответить с цитированием
  #9  
Старый 21.12.2007, 06:39
selax selax вне форума
Прохожий
 
Регистрация: 21.12.2007
Сообщения: 1
Репутация: 10
По умолчанию Вопрос есть, ответа нет

Нужно в uses дописать IdAllFTPListParsers
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:05.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter