情况是这样的:
  我做了一个界面,里面含保存和打开文件功能,保存是对richedit里的内容保存成文本文件,打开则是相反。界面的相关函数有对自己制造的字库进行处理的程序。
    AssignFile( FileASC12, 'asc12.bin' );  //取数字点阵
    Reset( FileASC12 );
    FSize := FileSize( FileASC12 );
/////////////////////////////////
  下面是打开:(举打开例子,保存也会有同样问题)
procedure Tmainfrm.open_btnClick(Sender: TObject);
begin
  if open_dig.Execute then
  begin
    edit_red.Lines.LoadFromFile(open_dig.FileName);
  end;
end;
在点打开或保存按钮后,再下载这些点阵时,会出现file not found的异常错误,我知道这是输入输出口的异常错误。
1.怎样避免这样的错误呢?
2.是不是在保存或调用字库的时候资源有冲突?
3.如果不可避免,怎么在except里处理呢,难道只能showmessage吗?难道不能完成要完成的功能吗?

解决方案 »

  1.   

    始一个新的应用程序
       ShellExecute(Handle, 'open', PChar('c:\test\app.exe'), nil, nil, SW_SHOW);打开记事本,并打开一个文件(系统能识别记事本应用程序的路径,因此我们不必使用绝对路径)
       ShellExecute(Handle, 'open', PChar('notepad'), PChar('c:\test\readme.txt'), nil, SW_SHOW);打印一个文档
       ShellExecute(Handle, 'print', PChar('c:\test\test.doc'), nil, nil, SW_SHOW);   注意:可能你会看到word暂时的被打开,但它会自动关闭。打开一个HTML页面
       ShellExecute(Handle, 'open', PChar('http://bbs.e-0631.cn'), nil, nil, SW_SHOW);你能通过一个已经注册的文件类型来打开应用程序
       ShellExecute(Handle, 'open', PChar('c:\test\readme.txt'), nil, nil, SW_SHOW);用windows Explorer 打开一个目录
       ShellExecute(Handle, 'explore', PChar('c:\windows)', nil, nil, SW_SHOW);运行一个DOS命令并立即返回
       ShellExecute(Handle, 'open', PChar('command.com'), PChar('/c copy file1.txt file2.txt'), nil, SW_SHOW);运行一个DOS命令并保持DOS窗口存在
       ShellExecute(Handle, 'open', PChar('command.com'), PChar('/k dir'), nil, SW_SHOW);
    想打开一个东西还是这样比较好!~
      

  2.   

    to:deansroom(丁樵方玉)
      这样打开是不是太麻烦了,没有看懂,
      我的问题可能在保存文件和调用文件的时候资源有冲突
      保存文件后需要释放什么资源吗?
      

  3.   

    AssignFile( FileASC12, 'asc12.bin' );
     这样写时,'asc12.bin' 必须为程序目录下的文件,否则写绝对路径
      

  4.   

    我想主要是楼上说的问题,另外我觉得,就算保存在程序目录下,也是这么写安全点:ExtractFilePath(Application.ExeName) + 'asc12.bin',不然在操作那些OpenDialog时默认路径被改了,也可能会出问题。------------------------------------------------------------------------------------3.如果不可避免,怎么在except里处理呢,难道只能showmessage吗?难道不能完成要完成的功能吗?
    都出现问题了,还怎么完成要完成的功能呢?只能提示和做资源释放那些了。
      

  5.   

    感谢HsWong() 和Harryfin(Harry)
     我写了绝对路径后,马上就解决问题了,谢谢!真的谢谢!
    能留下联系方式吗?我QQ:54258378