Главная страница
    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.038 c
1-1189609395
sshaitan
2007-09-12 19:03
2007.12.02
Перевод кодов символов формата Unicode в строку


1-1189486061
Inorica
2007-09-11 08:47
2007.12.02
Drag n Drop любого текста из любой проги в мою прогу!


15-1194086061
Prohodil Mimo
2007-11-03 13:34
2007.12.02
Существуют ли способы записи на CD после финализации?


2-1194502707
Slim
2007-11-08 09:18
2007.12.02
Функции работы со строковыми типами в Delphi


15-1193489604
Petr V. Abramov
2007-10-27 16:53
2007.12.02
firebird ->Oracle





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский