Форум: "Сети";
Текущий архив: 2009.02.08;
Скачать: [xml.tar.bz2];
ВнизIdFTP Найти похожие ветки
← →
anthems © (2007-05-19 04:10) [0]После соединения с фтп сервером и забивания каталогов в ListBox, пытаюсь определить файл это или папка
if IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].ItemType =ditDirectory
выпадает ошибка - "List index out of bounds"
при етом - IdFTP1.DirectoryListing.Items.Count = 0
IdFTP1.DirectoryListing.DirectoryName пустое
работаю с 2005 дельфой.
Заранее благодарен за все предложенные варианты решения проблемы.
← →
Anatoly Podgoretsky © (2007-05-19 10:57) [1]Зачем же ты обращаешься к списку если у тебя нет элементов?
Да и вообще сама идея странная, по индексу из одного списка обращаться к индексу другого списка, замучаешься с синхронизацией, в одном 3 в другом 10.
← →
anthems © (2007-05-19 13:53) [2]В этом то и проблема, что элементов нету а должны быть, может я чего не понимаю в работе этого компонента, поэтому и прошу помощи )
← →
Anatoly Podgoretsky © (2007-05-19 13:59) [3]> anthems (19.05.2007 13:53:02) [2]
Раз элементов нет, то не надо и обращаться.
← →
anthems © (2007-05-19 14:15) [4]Да ну ето понятно, что если там ничего нет то и лезть туда не надо, я же спрашиваю почему там ничего нет и как сделать так что бы там что-то было
← →
Anatoly Podgoretsky © (2007-05-19 14:59) [5]> anthems (19.05.2007 14:15:04) [4]
У тебя ошибка в программе
← →
anthems © (2007-05-19 18:56) [6]Вот код, может забыл что где
procedure TForm1.ShowDir(Path: string);
var
List: TStringList;
begin
List := TStringList.Create;
try
idFTP1.ChangeDir(Path);
IdFTP1.TransferType := ftASCII;
StatusBar1.Panels.Items[1].Text := Form1.idFTP1.RetrieveCurrentDir;
DirectoryListBox.Items.Clear;
IdFTP1.List(List);
DirectoryListBox.Items.Assign(List);
if DirectoryListBox.Items.Count > 0 then
if AnsiPos("total", DirectoryListBox.Items[0]) > 0 then DirectoryListBox.Items.Delete(0);
finally
List.Free;
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if IdFTP1.Connected then
try
IdFTP1.Quit;
finally
DirectoryListBox.Items.Clear;
Path := "/";
end
else with IdFTP1 do
try
Username := Edit2.Text;
Password := Edit3.Text;
Host := Edit1.Text;
Connect;
ShowDir("/");
finally
end;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
var
i,Count: integer;
begin
Count:=0;
for i := 0 to DirectoryListBox.Count - 1 do
if IdFTP1.DirectoryListing.Items[i].ItemType <> ditDirectory then
Inc(Count);
ShowMessage(IntToStr(MyCount));
end;
← →
selax (2007-12-21 06:39) [7]Все просто.
Нужно в uses дописать IdAllFTPListParsers
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2009.02.08;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c