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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.05.2007, 14:09
Apple Apple вне форума
Прохожий
 
Регистрация: 18.05.2007
Сообщения: 4
Репутация: 10
По умолчанию IdFTP

В общем с толкнулся с такой проблемой, необходимо приконнектиться к фтп серверу и просто подсчитать количество содержащихся в указанной дирректории файлов исключая подпапки и вложенные в них файлы. С конектом разобрался, а вот подсчитать немогу. Вывыливается с ошибкой

class EListError with message 'List index out of bounds (0)'

var
i,count:integer;
begin
count :=0;
DirectoryListBox.ItemIndex := 0;
for i:=1 to DirectoryListBox.Count
do begin
if IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].ItemType=ditDirectory
then count := count else count:= count + 1;
DirectoryListBox.ItemIndex := DirectoryListBox.ItemIndex + 1;
end;
ShowMessage(IntToStr(Count));
end;
Ответить с цитированием
  #2  
Старый 18.05.2007, 16:04
Holy Holy вне форума
Новичок
 
Регистрация: 31.07.2006
Сообщения: 55
Репутация: 10
По умолчанию

Списки (ака TList) начинаются с 0.
Код:
for i := 0 to List.Count - 1 do
Ответить с цитированием
  #3  
Старый 18.05.2007, 16:19
Apple Apple вне форума
Прохожий
 
Регистрация: 18.05.2007
Сообщения: 4
Репутация: 10
По умолчанию

проблема в этой строке
if IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].ItemType=ditDirectory, непонятно почему
Ответить с цитированием
  #4  
Старый 18.05.2007, 16:26
Holy Holy вне форума
Новичок
 
Регистрация: 31.07.2006
Сообщения: 55
Репутация: 10
По умолчанию

Попробуй так:
Код:
var
  i, MyCount: integer;
begin
  MyCount:=0;
  for i := 0 to DirectoryListBox.Count - 1 do 
    if IdFTP1.DirectoryListing.Items[i].ItemType <> ditDirectory then 
      Inc(MyCount);

  ShowMessage(IntToStr(MyCount));
end;
Ответить с цитированием
  #5  
Старый 18.05.2007, 18:30
Apple Apple вне форума
Прохожий
 
Регистрация: 18.05.2007
Сообщения: 4
Репутация: 10
По умолчанию

Постараюсь немного уточнить вопрос:

После соединения с фтп сервером и забивания каталогов в ListBox, пытаюсь определить файл это или папка

if IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].ItemType =ditDirectory
выпадает ошибка - "List index out of bounds"
при етом - IdFTP1.DirectoryListing.Items.Count = 0
IdFTP1.DirectoryListing.DirectoryName пустое

Последний раз редактировалось Apple, 18.05.2007 в 18:32.
Ответить с цитированием
  #6  
Старый 18.05.2007, 18:56
Аватар для mav_c
mav_c mav_c вне форума
Активный
 
Регистрация: 26.03.2007
Адрес: Москва
Сообщения: 287
Репутация: 30
По умолчанию

Цитата:
Сообщение от Apple
Постараюсь немного уточнить вопрос:

После соединения с фтп сервером и забивания каталогов в ListBox, пытаюсь определить файл это или папка

if IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].ItemType =ditDirectory
выпадает ошибка - "List index out of bounds"
при етом - IdFTP1.DirectoryListing.Items.Count = 0
IdFTP1.DirectoryListing.DirectoryName пустое

ItemIndex - это выбраный элемент!
if IdFTP1.DirectoryListing.Items[i].ItemType =ditDirectory
__________________
---------------------------------------------
Программирование - не профессия, а стиль жизни
Ответить с цитированием
  #7  
Старый 19.05.2007, 04:03
Apple Apple вне форума
Прохожий
 
Регистрация: 18.05.2007
Сообщения: 4
Репутация: 10
По умолчанию

все равно
даже если просто
if IdFTP1.DirectoryListing.Items[0].ItemType =ditDirectory
ошибка не исчезает, проблема как я понял в том что IdFTP1.DirectoryListing ничего не содержит а следовательно и не может обратиться к запрашиваему элементу, так как его попросту нет, но почему так, я понять немогу, так как коннект проходит а в ListBox список файлов и директорий выводится

Может у кого есть какая нибудь литература, раскрывающая свойства и методы работы с данным компонетом, просто полазил по форумам, с такой проблемой сталкивались многие , но на удивление решения или даже намека куда лезть и как с этим бороться никто и нигде не описывает
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter