不能用CStdioFile的WriteString,用CFile的Write

解决方案 »

  1.   

    如果文件是文本文件,用WriteString或许合适,它会自动把换行符写成回车换行对,但如果是二进制文件,还是用CFile好
      

  2.   

    CStdioFile是基于文本的.不能那么用
      

  3.   

    问题不是出在CStdioFile上吧!好象是在打开方式上!你是以什么方式打开该文件进行写的?如果是写方式,就只能是在0的地方了。稳妥一点的方法应该是创建一个新的文件,然后拷贝旧文件从开始到要修改串的地方的内容,写入修改串,然后拷贝修改串至末的文件内容。然后删除旧文件,匠心文件改名为新的文件名。
      

  4.   

    另外,你的代码是否应当如下:
    int pos;
    CStdioFile infofile;if( (pos= strInfo.Find(oldstr,0)) != -1)
    {
      infofile.Seek(pos,CFile::begin);
      infofile.WriteString(newstr);
    }
      

  5.   

    如果不是文本文件,当然不应该用CStdioFile实现。
    如果是文本文件,请问你是怎么把文件内容读入一个CString对象中的?
    如果你是用ReadString(),那自然是错的,因为它一次只能读出一行,而不能读入整个文件。
      

  6.   

    非常感激forgetter朋友发现了我的错误,问题解决了。同时对sunsetyang朋友提供的方法也表示感谢.