Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.12.02;
Скачать: [xml.tar.bz2];

Вниз

Подскажите пожалуйста почему выдается ошибка в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.048 c
2-1194375132
Lamer666
2007-11-06 21:52
2007.12.02
Как перебрать все объекты типа TEdit на форме??


2-1194260692
Петрович07
2007-11-05 14:04
2007.12.02
вопрос по циклу,условию


2-1194433943
LexXL
2007-11-07 14:12
2007.12.02
вписать картинку в квадрат


15-1193476157
marinator
2007-10-27 13:09
2007.12.02
MSXML


15-1194093107
Булат Шакиров
2007-11-03 15:31
2007.12.02
Бушков А.А. как историк ;)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский