文件操作 我想编辑一个文件,找到其中的一个字符串将其替换,比如将“192.168.88.7”替换为“192.168.88.142”(根据输入,所以长度不固定),我试过fseek,fwrite好像都不行,因为我的目标和源字符串可能长度不相等,请教各位该如何做?最好能给段简单源码!谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CStdioFile file1; CString temp,ss; file1.Open("4.txt",CFile::modeCreate|CFile::modeReadWrite|CFile::modeNoTruncate); while(file1.ReadString(temp)) { temp.Replace("192.168.88.142","192.168.88.6"); ss+=temp+"\n"; } file1.Close(); file1.Open("4.txt",CFile::modeCreate|CFile::modeReadWrite|CFile::modeNoTruncate); file1.WriteString(ss); file1.Close();呵呵,楼主开了几个贴子啊,我都顶,分都给我吧 ^_^ 每个帖子我都看了,没有一个答案是对的,可能我没说清楚,我需要用fopen之类的函数,而不是用MFC或者STL,另外我的“192.168.88.7"是不顾定位置的。急,所以多开了贴,只要有人回答出来,所有帖子分数都可以给你,如果需要,还可以另加分。分数本来就是用来交流的,我不会小气的:) :)谢谢各位,思想我大概知道,但关键是代码,想偷懒!:)目前想了个偷懒的办法,创建一个不可见的多行CEdit,然后把内容读入,再每行查找关键字,找到后用replacesel替换,实在是太懒了,所以想出这么个馊主意。不过考虑到也有和我一样懒的人,所以还是写出来,不怕丢脸!:)帖子再留2天,看看是不是还有好的答案,到时候一起给分! CStringArray strarray; CStdioFile file; if( !file.Open("c:\\1.txt", CFile::modeRead) ) { AfxMessageBox("can not open file!"); return; } CString strLine; while(file.ReadString(strLine)) { if(strLine.Find("192.168.88.7") != -1) strLine.Replace("192.168.88.7", "192.168.88.142"); strarray.Add(strLine); } file.Close(); if( !file.Open("c:\\1.txt", CFile::modeCreate|CFile::modeWrite) ) { AfxMessageBox("can not open file!"); return; } for(i=0; i<strarray.GetSize(); i++) { str = ""; str = strarray[i] + "\n"; file.WriteString(str); } file.Close(); CStringArray strarray; CStdioFile file; if( !file.Open("c:\\1.txt", CFile::modeRead) ) { AfxMessageBox("can not open file!"); return; } CString strLine; while(file.ReadString(strLine)) { if(strLine.Find("192.168.88.7") != -1) strLine.Replace("192.168.88.7", "192.168.88.142"); strarray.Add(strLine); } file.Close(); if( !file.Open("c:\\1.txt", CFile::modeCreate|CFile::modeWrite) ) { AfxMessageBox("can not open file!"); return; } for(i=0; i<strarray.GetSize(); i++) { str = ""; str = strarray[i] + "\n"; file.WriteString(str); } file.Close(); 高手帮看错误在哪里?多谢多谢~~~ VC下如何在主窗口和非模式对话框上同时播放动画 如何获得两个时间相减的差值? 要写论文了请大家多推荐几本参考文献 急,很菜的vc使用问题(找不到控件),答者有分,问题解决加分。 向高手求救:Dao数据库查询有关日期时间的问题 高分求教:IE的plug-in如何获取当前IE实例的internet句柄(HINTERNET) 我用vs 2008制作的安装文件安装后再运行其卸载程序时提示“此操作只对目前安装的产品有效”,怎么回事? case语句的每个分支后可以有多条语句吗? 从RING3获取硬盘序列号FOR95/98/ME/NT/2000 文件操作 文件操作
CString temp,ss;
file1.Open("4.txt",CFile::modeCreate|CFile::modeReadWrite|CFile::modeNoTruncate);
while(file1.ReadString(temp))
{
temp.Replace("192.168.88.142","192.168.88.6");
ss+=temp+"\n";
}
file1.Close();
file1.Open("4.txt",CFile::modeCreate|CFile::modeReadWrite|CFile::modeNoTruncate);
file1.WriteString(ss);
file1.Close();呵呵,楼主开了几个贴子啊,我都顶,分都给我吧 ^_^
CStdioFile file;
if( !file.Open("c:\\1.txt", CFile::modeRead) )
{
AfxMessageBox("can not open file!");
return;
}
CString strLine;
while(file.ReadString(strLine))
{
if(strLine.Find("192.168.88.7") != -1)
strLine.Replace("192.168.88.7", "192.168.88.142"); strarray.Add(strLine);
}
file.Close();
if( !file.Open("c:\\1.txt", CFile::modeCreate|CFile::modeWrite) )
{
AfxMessageBox("can not open file!");
return;
}
for(i=0; i<strarray.GetSize(); i++)
{
str = "";
str = strarray[i] + "\n";
file.WriteString(str);
}
file.Close();
CStdioFile file;
if( !file.Open("c:\\1.txt", CFile::modeRead) )
{
AfxMessageBox("can not open file!");
return;
}
CString strLine;
while(file.ReadString(strLine))
{
if(strLine.Find("192.168.88.7") != -1)
strLine.Replace("192.168.88.7", "192.168.88.142"); strarray.Add(strLine);
}
file.Close();
if( !file.Open("c:\\1.txt", CFile::modeCreate|CFile::modeWrite) )
{
AfxMessageBox("can not open file!");
return;
}
for(i=0; i<strarray.GetSize(); i++)
{
str = "";
str = strarray[i] + "\n";
file.WriteString(str);
}
file.Close();