一个Boolean类型返回值的低级问题

jyh2004 2004-04-20 12:01:02
Function TRunForm.L1000Exist : Boolean;
var
i:Integer;
L1000 : Boolean;
begin
for i:=0 to 350 do
begin
if DateFile[i] = 'l1000' then
begin
L1000Exist := True;
showmessage('L1000Exist := True;');
end
else
L1000Exist := False;
end ;
end;

procedure TRunForm.Start;
var count ,i : integer;

begin
Connect;
ListFile;
FTP('table_info'); //提取文本FTP

if L1000Exist then ------------------ 在这!
begin
L1000Dir := '/back/databack/'+WorkTime+'/l1000';
IdFTP1.ChangeDir(L1000Dir);
ListFile;
FTP('table_info_L1000');
end
else showmessage('无L1000目录!') ;

IdFTP1.Disconnect;
end;



以上L1000Exist 是我写的一个函数,但函数L1000Exist中的 showmessage('L1000Exist := True;'); 都能看到了,我到if L1000Exist then 这怎么老进不去呢??
...全文
159 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
SydPink 2004-04-20
  • 打赏
  • 举报
回复
if DateFile[i] = 'l1000' then
begin
L1000Exist := True;《是不是这里的问题??? 改成 Result:=True;
showmessage('L1000Exist := True;');
Exit;//得到结果就应该立刻退出了吧。难道还要继续做下去???
end
johnzhangbit 2004-04-20
  • 打赏
  • 举报
回复
Function TRunForm.L1000Exist : Boolean;
var
i:Integer;
L1000 : Boolean;
begin
for i:=0 to 350 do
begin
if DateFile[i] = 'l1000' then
begin
L1000Exist := True;《是不是这里的问题??? 改成 Result:=True;
showmessage('L1000Exist := True;');
end
else
L1000Exist := False;《是不是这里的问题??? 改成 Result:=False;
end ;
end;
risingsoft 2004-04-20
  • 打赏
  • 举报
回复
Function TRunForm.L1000Exist : Boolean;
var
i:Integer;
L1000 : Boolean;
begin
for i:=0 to 350 do
begin
if DateFile[i] = 'l1000' then
begin
L1000Exist := True;
showmessage('L1000Exist := True;');
break; //注意:中断循环,因为当某一个DateFile[i]为true后,之后的DateFile[i]可能为FALSE,从而会将函数返回值置false
exit; //注意:退出
end
else
L1000Exist := False;
end ;
end;
SydPink 2004-04-20
  • 打赏
  • 举报
回复
那就给分吧?嘿嘿..别说不知道怎么给分...我哭死了。....
jyh2004 2004-04-20
  • 打赏
  • 举报
回复
问题就在 SydPink加的Exit;//得到结果就应该立刻退出了吧。难道还要继续做下去???

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧