MFC 从对话框打开文件 然后取得给文件的句柄 应该怎样做

我要运行程序后,从对话框打开选择的窗口,然后选取文件,然后再取得该文件的句柄,因为用readfile()来读这个文件,应该怎样做呢?句柄的问题已解决。新问题:create... 我要运行程序后,从对话框打开选择的窗口,然后选取文件,然后再取得该文件的句柄,因为用readfile()来读这个文件,应该怎样做呢?
句柄的问题已解决。
新问题:createfile创建一个新的txt文件,txt的文件名可以变化
比如说,我从一个名为1的文件读,然后新建的txt文件名为1.txt
从2的文件读,则新建的txt文件名为2.txt
展开
 我来答
bhtzu
2013-01-29 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4425万
展开全部
CFileDialog获取的是文件名和路径;
通过OpenFile从文件名打开获取文件句柄;

创建文件这个没明白你的意思,是需要自动命名还是同名改扩展名
如果是改扩展名,从CFileDialog那里获取CString CFileDialog::GetFileName( ),然后字符串拼接就可以了;
如果自动命名,那么通过CString::Format("XXX%d.txt",iIndex);批量命名。
追问
1.GetFileName()取得的文件名是带后缀的,有什么办法把后缀去掉吗?我用memcpy来复制切断,但是后面给我加了几个乱码
2,我想用获得的文件名来为新建的txt命名
比如,我在GetFileName获得的文件名为123,那么我新建的txt名字为123.txt,或者file123.txt
注意,我新建文件的时候,用的是creatfile()函数。
txt的名称也可以先随便给,但是我要在程序结束前更改它的名字为对应的。
追答
既然用了MFC的东西,就不要各种都用,会产生诸多类似编码不匹配的问题。
如果你用了CFileDialog,那么推荐你只使用CFile CString,其它的API和RTTI一概不用。
示例:
CString str = fDialog.GetFilePath();
str = str.Left(str.ReverseFind('.'));//去掉扩展名的完整文件路径
str += ".txt";//txt文件名包含完整路径
CFile file;
file.Open(str,CFile::modeCreate|CFile::modeWrite);
file.Write(strData,strData.GetLength());
file.Close();
来自:求助得到的回答
相思丶猫2C
2013-01-29 · TA获得超过1198个赞
知道小有建树答主
回答量:1432
采纳率:50%
帮助的人:976万
展开全部
打开选择的窗口,然后选取文件。
可以获取到文件路径,然后你再去readfile
追问
用什么语句获得句柄呢?
追答
createfile创建一个新的txt文件,txt的文件名可以变化。
你自己去解析这个文件路径的文件名,然后在加上.txt后缀,接着用c语言的
fopen函数创建文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式