Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.02;
Скачать: CL | DM;

Вниз

Подскажите пожалуйста почему выдается ошибка в TidFTP?   Найти похожие ветки 

 
TankMan   (2007-11-08 01:54) [0]

Не могу понять в чем загвоздка. Суть программы такова, чтобы копировать список файлов указанных в Memo в директорию указанную в ePathtoCopy. Директории может и не быть, поэтому если что мне нужно ее создать. Вот и написал такую маленькую функцию CahngeFullDir. Все вроде бы нормально, исполняется и выполняется, но только один раз после запуска приложения. Когда я нажимаю второй раз на эту же кнопу, то в строчке "Вот здесь" , выдается ошибка причем почему-то разные ошибки то Acces violation at adress xxxxx то EPrivelege и что-то по поводу привелегий (сейчас уже не могу добиться ее отображения)
одно меня мучает, не могу понять, я ведь не зря уже разделил целевую строчку директории на две, в два захода чтобы дошло до нужно директории, а он проходит первое использование CahngeFullDir (полностью) и при втором заходе выдает ошибку на той строчке после 1го прохода ее рекурсивно....  и даже после этой ошибки, я еще раз нажимаю кнопку и опять повторяется тоже самое - первый раз CahngeFullDir проходит нормально а второй раз нет :(
Не могу понять... в чем же может быть дело подскажете?  

procedure TForm1.btnConnectClick(Sender: TObject);
var
i:integer;

procedure CahngeFullDir(Dest:string);
var str1:TStrings;
i:integer;
s:string;

begin
str1:=TStringList.Create;
if str1=nil then ShowMessage("НЕ создан str1");
Dest:=RightStr(Dest,length(Dest)-1);

i:=AnsiPos("/",Dest);
if i>0 then begin
s:=LeftStr(Dest,i-1);
Dest:=RightStr(Dest,Length(Dest)-i);
idportal.List(str1,"*",false)   <================== "Вот здесь"
if str1.IndexOf(s)>=0 then else
idportal.MakeDir(s);
idportal.ChangeDir(s);
i:=AnsiPos("/",Dest);
if i>0 then CahngeFullDir("/"+Dest)
else if length(Dest)>1 then
 CahngeFullDir("/"+Dest+"/");
//idportal.List(nil);
end;
str1.Free;
end;

procedure PutFile(FileName:string);

begin
idportal.TransferMode(dmStream);
try
FStream:=TFileStream.Create(FileName,fmOpenRead or fmShareExclusive);
idportal.Put(FStream,ExtractFileName(FileName));
finally
FStream.Free;
end;
end;

begin
if Assigned(idportal) then begin
idportal.Free;
idportal:=TIdFTP.Create(nil);
idportal.OnWork:=Form1.idportalWork;
end;
If idportal.Connected then
                       Begin
                             idportal.Abort;
                             idportal.Quit;
                       End;
idportal.Host:="192.168.0.130";
idportal.Username:="httpadmin";
idportal.Password:="12345678";
idportal.ProxySettings.Host:="";
idportal.ProxySettings.Port:=0;
idportal.Passive := false;
idportal.Connect;
If idportal.Connected then
 Begin
 idportal.ChangeDir("/");
 CahngeFullDir("/var/www/html");
 CahngeFullDir(ePathtoCopy.Text);
 
for i:=0 to Memo1.Lines.Count-1 do
   if FileExists(Memo1.Lines[i]) then
   PutFile(Memo1.Lines[i]);
   idportal.Abort;
   idportal.Quit;
   ShowMessage("Передача данных закончилась");
 End;

If idportal.Connected then
                       Begin
                             idportal.Abort;
                             idportal.Quit;
                       End;
end;


 
Сергей М. ©   (2007-11-08 09:48) [1]


> if str1=nil then ShowMessage("НЕ создан str1");


Начнем с того, что это сообщение ты никогда не увидишь.


 
TankMan   (2007-11-08 12:10) [2]

Да это и не важно - это мусор, я уже не знал что делать. сдесь вообще мусора достаточно, но тем не менее не понятно почему idportal.List(str1,"*",false) возвращает ошибку :(


 
Сергей М. ©   (2007-11-08 13:22) [3]


> почему idportal.List(str1,"*",false) возвращает ошибку


Потому что - ты же сам сказал  - Acces violation at adress xxxxx

Выделенное жирным весьма информативно для поиска причины.


 
Anatoly Podgoretsky ©   (2007-11-08 15:53) [4]

Это адрес xxxxx



Страницы: 1 вся ветка

Текущий архив: 2007.12.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
2-1192410570
Номер
2007-10-15 05:09
2007.12.02
Скажите, как загрузить курсор из потока?


2-1194441116
..::KraN::..
2007-11-07 16:11
2007.12.02
Как перевести компьютер в спящий режим


2-1194608983
DimOk
2007-11-09 14:49
2007.12.02
GetActiveOLEObject касательно v77.application


15-1193777739
Принтер
2007-10-30 23:55
2007.12.02
Бытовые струйники энд лазерные притеры


15-1194078732
Стоун
2007-11-03 11:32
2007.12.02
память