CStdioFile对文件的某一行进行修改
举个例子,有一文本文件test.txt如下:
192.168.1.1:1,60.000,60.000
192.168.1.1:2,60.000,60.000
192.168.1.1:3,60.000,60.000
192.168.1.1:5,60.000,60.000
192.168.1.1:21,60.000,60.000
192.168.1.1:34,60.000,60.000
192.168.1.1:35,60.000,60.000
192.168.1.1:66,60.000,60.000
192.168.1.1:123,60.000,60.000
192.168.1.1:234,60.000,60.000
我想找到192.168.1.1:21这行,并将其后面的值改为40.000,40.000,即这行值变为“192.168.1.1:21,40.000,40.000”
如何能够只在一个文件里操作,不用写第二个文件?
用CStdioFile.ReadString()和CStdioFile.WriteString()能够实现吗?
借助CFile.Seek()可不可以?
[解决办法]
可以
可以
可以
[解决办法]
先用CFile.Seek()把指针指到21后面就可以了.
[解决办法]
CStdioFile file; file.Open("a.txt",CFile::modeReadWrite); CString str; while(true){ file.ReadString(str); if(str.Left(str.Find(",",0))==CString("192.168.1.1:21")){ file.Seek(0,CFile::current); file.Write("192.168.1.1:21,40.000,40.000",strlen("192.168.1.1:21,40.000,40.000")); break; } } file.Close();
[解决办法]
最笨的办法是,把txt中的数据一行一行的读出来,取每一行中第一下“,”前的字符串,然后和你要改的数据IP进行比较,如果相等就用你的新值替换掉“,”后面的值,重新写进txt去就OK了,如果不相等接着找,找到为止!希望对你有帮助!