![]()  | 
	
 
  | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 В общем с толкнулся с такой проблемой, необходимо приконнектиться к фтп серверу и просто подсчитать количество содержащихся в указанной дирректории файлов исключая подпапки и вложенные в них файлы. С конектом разобрался, а вот подсчитать немогу. Вывыливается с ошибкой 
		
	
		
		
		
		
		
	
		
		
	
	
	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  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Списки (ака TList) начинаются с 0. 
		
	
		
		
		
		
		
	
		
		
	
	
	Код: 
	for i := 0 to List.Count - 1 do  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 проблема в этой строке 
		
	
		
		
		
		
		
	
		
		
	
	
	if IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].ItemType=ditDirectory, непонятно почему  | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Попробуй так: 
		
	
		
		
		
		
		
	
		
		
	
	
	Код: 
	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  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Постараюсь немного уточнить вопрос: 
		
	
		
		
		
		
		
		
			После соединения с фтп сервером и забивания каталогов в 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  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Цитата: 
	
 ItemIndex - это выбраный элемент! if IdFTP1.DirectoryListing.Items[i].ItemType =ditDirectory  | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 все равно 
		
	
		
		
		
		
		
	
		
		
	
	
	даже если просто if IdFTP1.DirectoryListing.Items[0].ItemType =ditDirectory ошибка не исчезает, проблема как я понял в том что IdFTP1.DirectoryListing ничего не содержит а следовательно и не может обратиться к запрашиваему элементу, так как его попросту нет, но почему так, я понять немогу, так как коннект проходит а в ListBox список файлов и директорий выводится   Может у кого есть какая нибудь литература, раскрывающая свойства и методы работы с данным компонетом, просто полазил по форумам, с такой проблемой сталкивались многие , но на удивление решения или даже намека куда лезть и как с этим бороться никто и нигде не описывает  |