举个例子,有一文本文件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()可不可以?
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()可不可以?
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();
CStdioFile sfp1,sfp2
用sfp1.ReadString(strValue)读一个文件里的内容,然后对strValue进行操作,
if有要找的内容,就更新strValue的值后用sfp2.WriteString()写进另一个文件test2.txt,
else直接用sfp2.WriteString()将strValue写进test2.txt;我想只用一个文件来读写
这个问题我已经查了很多搜了很久试了很多次了,没实现得了
才到这里来提问的
应该是
file.Seek(-2-str.GetLength(),CFile::current);
file.Write("192.168.1.1:21,40.000,40.000\n",strlen("192.168.1.1:21,40.000,40.000"));