一个问题,你的文件格式呢?是用一下格式写的么?
CString buffer;
ar<<buffer;
如果不是,就不能使用这种格式吧?

解决方案 »

  1.   

    文件的格式就是字符串流,当中用Tab分隔。我已经用STL写过一份,可以用啊。
      

  2.   

    如果你的文件不是用ar<<buffer这样的方法生成的,用ar>>buffer应该是读不出来的。因为buffer是一个从CObject继承的CString对象,ar>>buffer匹配了CArchive的>>操作符,>>操作符要调用CArchive::ReadObject从文件中读出类名等信息用于CObject对象的动态创建。如果你不是用ar<<buffer来生成文件的话,是不会有这些信息的。
      

  3.   

    有些明白了,可是为什么STL库中的string就没有问题呢?稍后结贴给分,让我再看看,谢谢你的回复。
      

  4.   

    你可以仔细看看深入浅出MFC明白MFC的文件写入是怎么用的!
    你使用的STL库肯定也使用她读出来得。
    还有,你的循环应该也是有问题的,
    可以用;
    ar.Read(.....);
      

  5.   

    如果使用ar.read(……)的话就违背了我的本意,我确实想要跳过字符串的处理。循环应该没有问题,逻辑上的错误大致可以排除。也许STL库写入数据的时候不加附加信息的,有空再研究。楼上的兄弟能不能具体些的说?谢谢,一定给分。
      

  6.   

    尝试用了ReadString和WriteString,虽然没有产生异常,不过整篇文档被当作一个字符串,速度是快了很多很多(因为直接读字符流的原因吧),可是最后的一句话(之前有很多的空格)被忽略了:(。没办法,最后还是重写了对文字的处理,还要考虑中文,不过所幸已经搞定了。谢谢各位了!都有分的。