CSTDIOFILE 郁闷问题 READSTRING 读入 怪 高手帮忙。。。。。

little_duck 2006-04-25 12:14:15
我现在写了个软件 里面利用
file.Open("dano.dat",CFile::modeCreate|CFile::modeRead);
CString Data;
BOOL panduan=file.ReadString(Data);
AFXMESSAGEBOX(DATA);却是空白
读取数据
情况出现了,由于我在软件里设置了开机器自动运行,我的程序是VC DIALOG 应用程序。我在该程序的
C****DLG类里的OnInitDialog()函数里运行了上面的代码BOfile.ReadString(Data);但是DATA里却是空白 好象没有读取到。但是我关闭程序后手动点击运行 又可以读取到数据请问是为什么?

该程序已经创建了dano.dat 该文件里已经写入了数据。,但是重新启动了就自动运行就读不出来请问为什么,最奇怪是 手动点击可以读取 我郁闷 实在想不出来了 请高手解决。
QQ:8583256
...全文
244 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
little_duck 2006-04-25
  • 打赏
  • 举报
回复
因为我是这样想的,如果没有该文件的话 就创建该文件 所以我就+了个CFile::modeCreate
pripor 2006-04-25
  • 打赏
  • 举报
回复
还有你只是要读数据的话为什么还要create

file.Open("。。。",CFile::modeRead);

------------------------------------

然也
huanglaoxie1 2006-04-25
  • 打赏
  • 举报
回复
modeCreate选项去掉,要不每次打开都创建一个新的文件,当然读出来也就市空了!
lixiaosan 2006-04-25
  • 打赏
  • 举报
回复
还有你只是要读数据的话为什么还要create

file.Open("。。。",CFile::modeRead);
lixiaosan 2006-04-25
  • 打赏
  • 举报
回复
绝对路径 ?

你可以用GetModuleFileName得到你的应用程序的路径,然后和你的dano.dat进行字符串连接后,再读文件
TCHAR szCurPath[MAX_PATH];

memset(szCurPath, 0, MAX_PATH);

GetModuleFileName(NULL, szCurPath, sizeof(szCurPath)/sizeof(TCHAR));
lixiaosan 2006-04-25
  • 打赏
  • 举报
回复
检测一下你是否成功打开文件

if (!file.Open(.....))
{
AfxMessageBox("can not open file!");
return;
}
little_duck 2006-04-25
  • 打赏
  • 举报
回复
我按照楼上各位进行了修改,
char szFilePath[150];
::GetModuleFileName(NULL, szFilePath,150);
CStdioFile file;
CString filepath(szFilePath);
filepath.Replace("XXXXXX.exe","dano.dat"); //dano.dat为程序要读取的文件
file.Open(filepath,CFile::modeRead);
CString Data;
BOOL panduan=file.ReadString(Data);
AfxMessageBox(Data);//注意这里反映情况是 空 ""
if(panduan)
{
..............
.............
............
}
但出现问题:如果按照上面做法获取路径的话不仅启动自动运行不能读取文件信息,连调试时手动点击都不能读取了。 怪~~~~

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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