使用OpenDialog对话框打开文件,会对文件产生什么影响?

xiami712 2003-08-29 04:12:38
用OpenDialog打开文件,可以取到文件名,可是,我想用ftream类的成员操作文件内容,读取file.get()和写入,它需要文件先打开文件才知道操作对象么?已经用OpenDialog打开的文件,要用file.open在打开是不行的。那么要怎么办才能继续使用ftream类中的函数,而用可以用OpenDialog 打开呢?OpenDialog 可以返回文件的句柄么?
...全文
45 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiami712 2003-09-16
  • 打赏
  • 举报
回复
谢谢大家回贴,懂了:)
kingcaiyao 2003-09-02
  • 打赏
  • 举报
回复
会改变当前的目录。
weixing979 2003-08-31
  • 打赏
  • 举报
回复
opendialog返回文件名,然后的操作得自己写
StockViews 2003-08-31
  • 打赏
  • 举报
回复
TO 二楼的兄弟,
TOpenDialog *dlg = new TOpenDialog(this);
if(dlg->Execute())
{
TFileStream *file = new TFileStream(dlg->FileName,fmOpenRead);
....
delete file;
}
delete dlg;

这样写是有问题的,虽然正式的资料中都是这样写的,但在现实中,这样做有某些系统的某些条件下,读出的文件名并不对。
应该响应OnCanClose事件并保存其FileName,然后在Execute()返回之后再使用这个文件名。
zihan 2003-08-30
  • 打赏
  • 举报
回复
楼主可能是误解了OpenDialog的用法了,OpenDialog的唯一用途就是返回文件名而已,他没有打开文件,也不会返回文件句柄,如果你要对文件操作,单独写代码,比如说OpenFile就可以返回文件句柄,然后继续作你的事情.
hy1080 2003-08-29
  • 打赏
  • 举报
回复
楼上的楼上绝对幽默
具本人所知OpenDialog->FileName的作用只是返回一个文件名(加路径)。
而没有什么其它的功能
真正的功能是你对自己的程序对这个文件的操作过程
dongyangzong 2003-08-29
  • 打赏
  • 举报
回复
楼上的,你真幽默
lbg 2003-08-29
  • 打赏
  • 举报
回复
OpenDialog只是调用打开文件的对话框,成功后返回你选择的文件名,并没有打开文件,你需要一套文件操作函数打开你选择的文件..........
kaimy 2003-08-29
  • 打赏
  • 举报
回复
我是新手,看不懂你的问题!
POLOM 2003-08-29
  • 打赏
  • 举报
回复
OpenDialg只是读取一个文件名,并没有打开文件
用TFileStream应该可以打开吧?

TOpenDialog *dlg = new TOpenDialog(this);
if(dlg->Execute())
{
TFileStream *file = new TFileStream(dlg->FileName,fmOpenRead);
....
delete file;
}
delete dlg;

604

社区成员

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

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