TIdFtp вызывает ошибку List out of bounds только при первом запуске - PullRequest
0 голосов
/ 28 января 2012

У меня проблема со следующим фрагментом кода

при первом запуске моей программы через эту функцию команда IdFtp.List выдает следующую ошибку

EListError с сообщением 'Индекс списка вне границ (1)'

Но при втором запуске ошибки не возникает

procedure TForm1.FinnaSkrar(FileFilter: string; FtpFiles : TStringlist);
var
  i : Integer;
begin
  try    
    IdFTP1.List(FileFilter, False);
  except
    ShowMessage('No file found !');
    Exit;
  end;
  for I := 0 to IdFTP1.DirectoryListing.Count - 1 do 
    FtpFiles.Add(IdFTP1.DirectoryListing.Items[i].FileName);
end;

Я попытался обновить Indy до последней версии сборки 4734 на Delphi 2010 , но безуспешно

Дополнительная информация на момент ошибки Стек вызовов показывает

  • : 7547b9bc KERNELBASE.RaiseException + 0x58
  • : 0043652e TList.Get + $ 1A
  • : 0043652e TList.Get + $ 1A
  • IdComponent.TIdComponent.EndWork (wmRead)
  • IdComponent.TIdComponent.EndWork (wmRead)
  • IdComponent.TIdComponent.EndWork (wmRead)
  • IdIOHandler.TIdIOHandler.ReadStream ($ 229ADD0, -1, True)
  • IdFTP.TIdFTP.InternalGet ('NLST REKIM- 0130 ', $ 229 ADD0, False)
  • IdFTP.TIdFTP.List (ноль, 'REKIM- 0130 ', False)
  • IdFTP.TIdFTP.List ('REKIM- 0130 ', False)
  • unitMainTntNavi.TfrmMain.FinnaSkrar ( 'REKIM- 0130 ', $ 22BE730)

OnDirParseStart и OnRetrived Dir не были запущены

и строка IdFTP1.DirFormat пуста

вызов IdFTP1.RetrieveCurrentDir сначала не помогает

вызов IdFTP1.List (nil) имеет тот же результат

...