我的一段ftp代码总是不同过,发生运行错误,实际上网是总是报错,请救命(100分)

  • 主题发起人 主题发起人 柳絮
  • 开始时间 开始时间

柳絮

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm8.BitBtn3Click(Sender: TObject);
begin //连接服务器
nmftp1.timeout:=strtoint64(edit5.text);
nmftp1.host:=edit1.text;
nmftp1.port:=strtoint(edit2.text);
nmftp1.userid:=edit3.text;
nmftp1.password:=edit4.Text;
try
groupbox1.cursor:=crhourglass;
bitbtn6.enabled:=true;
bitbtn3.enabled:=false;
nmftp1.connect;
except
bitbtn3.enabled:=true;
bitbtn6.enabled:=false;
groupbox1.cursor:=crhandpoint;
application.MessageBox('在与该站点连接时发生错误','错误提示',mb_ok);//实际上网调试 总是报这句错!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


end;
 
在你的except部分把Exception的信息显示出来不就知道错在什么地方了?
 
你在EXCEPT时将错误信息直接报出来,根据报错信息再来确定是什么错误!
因为实际情况是多种多样的,(比如用户名和密码的大小写问题,或干脆是用户名、
密码不对等),在你的程序中,你只报相同的错误,怎么查错误?
所以你必须将它报出来。
下面是改好的程序:

procedure TForm8.BitBtn3Click(Sender: TObject);
begin //连接服务器
nmftp1.timeout:=strtoint64(edit5.text);
nmftp1.host:=edit1.text;
nmftp1.port:=strtoint(edit2.text);
nmftp1.userid:=edit3.text;
nmftp1.password:=edit4.Text;
try
groupbox1.cursor:=crhourglass;
bitbtn6.enabled:=true;
bitbtn3.enabled:=false;
nmftp1.connect;
except
on e:exception do
begin
bitbtn3.enabled:=true;
bitbtn6.enabled:=false;
groupbox1.cursor:=crhandpoint;
application.MessageBox('在与该站点连接时发生错误'+e.message,'错误提示',mb_ok);
end;
end;

 
我补充一下:
经过本人多次测试,发现错误的信息有如下两类:
if UPPERCASE(E.message)='CONNECTION FAILED'
then
ShowMessage('连接不成功')//连不上服务器
else
if UPPERCASE(E.message)='530 LOGIN INCORRECT.'#$D#$A
then
ShowMessage('连接成功,但是登录不成功!')
//连上服务器了,但是用户名或密码错误,使得登录不成功。
else
ShowMessage('未知错误'+e.message);
 
多人接受答案了。
 
后退
顶部