vc中如何修改TXT文件的指定行的内容?

txt配置文件:
SERV_IP=127.0.0.1
SERV_PROT=9666
DB_NAME=master
DB_USER=sa
DB_PWD=
SERV_CHECK_CODE=123456
SERV_COM_ID=0
SERV_CLIENT_TYPE=1
SERV_ISMAINSTATION=0
PROGRAM_STAR_TIME=2011-10-12 16:08:36
PROGRAM_CLOSE_TIME=2011-10-12 16:08:42
我想每次在程序关闭的之前得到系统时间,然后存到配置文件PROGRAM_CLOSE_TIME中,然后在下次程序开启的时候读取这个时间。
请问下vc中怎么修改PROGRAM_CLOSE_TIME后面的时间呢。
!!!!!!!!!!!
不要用读取全部 修改 重新写入的方法!!!
!!!!!
怎样才能单独修改该配置值呢?

咳咳 我正好在弄这个问题 等我有了结果再来和你讨论~~占个楼先
好了我弄出来了 嘿嘿 我新手有点笨啊 用了五天才把这个搞明白 其实楼下那位同学说的关于CStdioFile::ReadString和CStdioFile::WriteString的方法是可行的啊
首先给你说两个函数哈 ReadString和WriteString
我是新手 也搞不懂什么派生啊之类的了 只说功能
Step1. 使用file.open打开文件之后呢 文件的指针就停在该txt的开始位置 然后这个ReadString可以以行为单位进行读取 每用一次这个函数,指针就会自动往下走一行(估计是用换行符判断的)。比如你想修改第五行 你只需要运行这个函数四次 就可以将文件指针调到第五行的开始了 是不是很爽~咩哈哈
Step2. 定义一个Dword的变量“o” 来记录指针位置
“DWORD o=0;”
用GetPosition()来获取该指针位置 并将它给变量“o ”
o=file.GetPosition();

Step3. Seek到指针位置 然后使用WriteString函数写入 注意这个WriteString的写入是覆盖原先的文本内容的
file.Seek(o,0);
file.WriteString("NC不脑残");
file.Close();
这样就完成啦

给你一个我做的例子 经试验是可以完成该功能滴
CStdioFile file;
CString sss;
DWORD o=0;
int ol=0;
file.Open("C:\\Documents and Settings\\Administrator\\桌面\\哈哈.txt",CFile::modeReadWrite);
while(file.ReadString(sss))
{
ol++;
if(ol>2)//读两次就不读了
break;
}
MessageBox(sss);
o=file.GetPosition();
file.Seek(o,0);
file.WriteString("Hello, world");
file.Close();
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-12
以读写方式打开文件( r+ , w+ )
按行读取文件中的数据,同时,读之前先记录最后一次读的文件位置。
检查数据是不是PROGRAM_CLOSE_TIME=这一行
如果不是 继续读取下一行
如果是: 修改成待修改的数据,重新定位文件到最后一次读取的位置,将修改后的数据写到当前行。关闭文件,退出程序。追问

想是这么想没错啊。能不能贴点代码出来啊!c++的!我现在在做vc ado编程呢。配置文件这问题不想用重新写入这方法逃避。

第2个回答  2011-10-26
我刚做了这个功能,给你个思路不给代码了。
用CStdioFile::ReadString读取每一行的字符串,读到你想要的那一行停止,然后文件定位,再用CStdioFile::WriteString写入你新的字符串
第3个回答  2011-10-12
这种类型的配置文件只能读取全部,修改,重新写入
如果是xml类型的配置文件,倒可以实现你需要的功能
第4个回答  2011-10-12
楼主 用记事本 打开 文件 ,像怎么改就怎么改 ~~ 为嘛用VC啊~~追问

你个鸟人!!!!!给哥贴点代码出来?

相似回答