初学这方面的,觉得是很简单的思路,但找不出错误,各位有经验的帮忙看看(100分)

  • 主题发起人 主题发起人 wuyixy1
  • 开始时间 开始时间
W

wuyixy1

Unregistered / Unconfirmed
GUEST, unregistred user!
我想实现这样,就是输入班级edit1 和 姓名edit2后,先检查有没有该班级,有的话,进入该班级的目录,否则提示出错,然后检查是否有该学生名,有再进入该目录下,否则新建一个目录


procedure TForm1.Button2Click(Sender: TObject);
var
i,j,flag1,flag2:integer;
begin
flag1:=0;
flag2:=0;
for i:=0 to nmftp1.FTPDirectoryList.name.Count-1 do
begin
if(nmftp1.FTPDirectoryList.name.Strings=edit1.Text)
then begin
flag1:=1;
NMFTP1.ChangeDir(edit1.Text);
for j:=0 to nmftp1.FTPDirectoryList.name.Count-1 do
if(nmftp1.FTPDirectoryList.name.Strings[j]=edit2.Text)
then begin
flag2:=1;
NMFTP1.ChangeDir(edit2.Text);
break;
end ;
if(flag2=0)
then begin
NMFTP1.MakeDirectory(edit2.Text) ;
NMFTP1.ChangeDir(edit2.Text);
break;
end;
end;
end;
if(flag1=0)
then statusbar1.panels[0].text:='你输入的班级不对,请重新输入';
end;

提示这样的错误
project project1.exe raised exception class EacceseeViolation with message'Access violation at address 004786DB in module'project1.exe'. Read of address 00000008'. Process stopped;
 
运行到哪句出错?
 
for i:=0 to nmftp1.FTPDirectoryList.name.Count-1 do 这句就错了
 
查了以前的问题,原来是这样的原因:用nt做服务器的时候,可以设置ftp的目录返回风格
一种是msdos风格,一种是unix风格,要设成后者FTPDirectoryList里才有内容。

 
先设定好NMFTP.Host,NMFTP.USERID,NMFTP.PASSWORD,再NMFTP.Connect
再添加
NMFTP.parseList:=True;
NMFTP.LIST;
试试,具体看帮助:
The FTPDirectoryList property is used only when the ParseList property is set to TRUE.
 
to 远帆: 怎么设置那,不好意思,我不知道,嘻嘻
to ZRWeng:我试了,错误还是有,但是移到下面去了,我再看看
 
如果你是用nt的ftp,那么在“属性->主目录->目录列表风格”里面。
 
再问一下:nmftp1.FTPDirectoryList 是不是只能对服务器根目录进行分离阿
 
NMFTP1.ChangeDir(edit1.Text);
for j:=1 to nmftp1.FTPDirectoryList.name.Count-1 do
我这样是不是不能分离下一层目录,因为单步执行起来,
好像if(nmftp1.FTPDirectoryList.name.Strings[j]=edit2.Text)都没有满足的时候,
而事实上应该有成立的时候
 
为什么没人说话了呢
我身边没有人可以请教,对这个控件实在不熟悉阿
各位gege帮下忙,不好意思占用一点时间阿
 
多人接受答案了。
 
后退
顶部