procedure TFormMain.ComboBoxFomerDataChange(Sender: TObject);
begin
  EdtPipeName.Text:=ComboBoxFomerData.Text;
  if FileExists('.\'+EdtPipeName.Text+'.dat') then
    showmessage(EdtPipeName.Text+'数据是存在的!')
  else
    showmessage(EdtPipeName.Text+'数据是不存在的!');
  Unitdatamanagement.MyManagement.GetData(ComboBoxFomerData.Text);
//这里调用例外的一个程序对ComboBox所选中的文件进行操作。
  ……//进行其他的调用
end;现在的问题是,如果我在第一次执行上面的代码的时候,如果在可执行文件夹下有一个文件,则提示文件存在。对这个文件中的数据提取出来以后并执行计算。然后在选择这个文件的时候,就提示找不到文件了。我的意思是:
1,选择一个选项,这个时候提示,这个文件是存在的;
2,程序提取出所选中的文件中的数据,并进行计算,期间没有任何错误发生;
3,重复第一步的工作,选择同一个选项,却提示文件是不存在的。可是我并没有删除这个文件呀,而且文件也确确实实还健在呀。我在打开文件的时候也记得用CloseFile了呀。不知道哪位前辈曾经遇到这样的问题,或者对这个问题有什么好的建议?

解决方案 »

  1.   

    谢谢各位的关心,小弟已经解决了这个问题:使用绝对路径就可以了。如果要使用相对路径也是可以的,比如
    Path:=ExtractfileDir(Application.ExeName)+'\';
      if FileExists(Path+Pipename+'.dat') then呵呵不过,我遇到这样一个问题,代码如下
     SaveDialog1:=TSaveDialog.Create(self);
      SaveDialog1.Title := '把运算的结果保存在:';
      if SaveDialog1.Execute then
      begin
       FileSaveTo:=SaveDialog1.FileName+'.txt';
       AssignFile(MyResultFile, FileSaveTo);
       try
         rewrite(MyResultFile);
         writeln(MyResultFile,'试验时间:'+ DateToStr(Date)+' '+timetostr(Now));
       finally
         closefile(MyResultFile);
         SaveDialog1.Free;
       end;
    现在的问题是,如果我在“打开文件”对话框以后,没有输入文件名,而是按了取消按钮,那么程序就会出错。这个错误如何捕捉?
      

  2.   

    你用OpenDialog等控件的时候它把相对路径给改变了,是要用绝对路径的,我遇到过此问题.
    2)
    if SaveDialog1.filename='' then exit;