大虾们帮我看一下这个问题吧!先谢了!!!

flyliyang 2004-11-14 08:52:49
void Dlg::OnBnClickedButton1()
{
char IniFileName[255];//ini文件的名字
char WinNum[255];
CFile cfile;
CFileException einfo;

::WritePrivateProfileString("winnum",
"count",
WinNum, //写入一个数字
IniFileName);

strcpy(str2,"name");
strcat(str2,WinNum);
strcat(str2,"=");
//////////////////////////////////////////////////////////////////////////////
// cfile.Open(IniFileName,CFile::modeReadWrite,&einfo);//打开信息文件 //
// cfile.SeekToEnd();//定位到文件的尾部 //
// StrLong=strlen(str2); //
// cfile.Write(str2,StrLong);//将字符串插入文件的尾部 //
// cfile.Close;//将文件关闭 //
//////////////////////////////////////////////////////////////////////////////
//如果不执行cfile的代码下面的API函数可用
//?????????????为什么在执行完cfile的代码后,下面的写ini文件的API函数不管用了???

::WritePrivateProfileString("window",
"name23",
"DKillerly",
IniFileName);
}

为什么用了框起来的那些代码后,再用WritePrivateProfileString这个API函数就不行了?
死活数据写不到ini文件中.小弟被困扰好几天了.急求.....快急死了...
...全文
153 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sungengyu 2004-11-18
  • 打赏
  • 举报
回复
右下角,点击"管理"。
sungengyu 2004-11-15
  • 打赏
  • 举报
回复
问题和回复都不能修改。
sungengyu 2004-11-15
  • 打赏
  • 举报
回复
虽然不太明白你想要的是什么,不过还是写一个例子。
按钮每点击一次,test.ini 中的内容就会变。试试看。
void CTestFunctionDlg::OnTest()
{
CString filename = "d:\\test.ini" ;
static count = 0 ;
count ++ ;

CString strCount ;
strCount.Format("%d",count) ;
WritePrivateProfileString("abc" , "count" , strCount , filename) ;

CString key ;
key.Format("abc%d",count) ;
CString value = "hahahaha" ;
WritePrivateProfileString("abc" , key , value , filename) ;
}
flyliyang 2004-11-15
  • 打赏
  • 举报
回复
str2是一个自已定义的自符串变量。
char str2[255];
小弟第一次来这个论坛不知道怎么修改自己的问题

用CFile是为的在INI文件中最后的一行插入一行新的字符串
比如在下在的段后插入abc3=
[abc]
abc1=
abc2=

用WritePrivateProfileString 只能写入abc1=,abc2= 的等号右边的值.。
它不能在ini文件的后面再插入一个新的 abc3=
所以才用的CFile.
我是想做一个一点按钮,〔abc〕段后边的成员能自动增加,而且在增加的同时对上一次成员abcn的
等号右边写入一个内容.




sungengyu 2004-11-15
  • 打赏
  • 举报
回复
你把到底需要什么样的ini文件说清楚。

还有那个 str2 是哪里来的?类成员变量?全局变量?

既然写 ini 文件 , 用 WritePrivateProfileString 就完全可以了。
sungengyu 2004-11-15
  • 打赏
  • 举报
回复
既然是ini,为什么还用CFile这么麻烦的方法写?
框起来的那些代码完全可以被替代嘛。
flyliyang 2004-11-15
  • 打赏
  • 举报
回复
谢谢各位大哥们的帮助了.问题现在解决了!
特别感谢信sungengyu(快乐机器)大哥了!!!

第一次在CSDN中问问题,没想到能得到这么多朋友的帮助,可真高兴呀!
以后要常来这个地方!!!这里是程序员真正的家!!!!

小弟现在还有一个问题!!!
这个怎么结贴呀???我要给帮助过我的大哥们分呀!
hjunxu 2004-11-15
  • 打赏
  • 举报
回复
你看一下出了什么错不就可以了啊,大家都不知道出了什么错,怎么回答啊,
是不是你cfile.Write(str2,StrLong);就没有成功所以下面找不到那个KEY ,所以错了啊
flyliyang 2004-11-14
  • 打赏
  • 举报
回复
用CFile是为的在INI文件中最后的一行插入一行新的字符串
比如在下在的段后插入abc3=
[abc]
abc1=
abc2=
当我做些后,再用WritePrivateProfileString()这个API函数去给"abc1="写入一个值就
写不进去了.
oyljerry 2004-11-14
  • 打赏
  • 举报
回复
文件打开的原因?

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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