CMainFrame* pmf=(CMainFrame*)AfxGetMainWnd();
CTestView* ev=(CTestView*)pmf->GetActiveView(); if (ar.IsStoring())
{
// TODO: add storing code here }
else
{
// TODO: add loading code here
CString s,sd("");
BOOL b=ar.ReadString(s);

while(b) 
{
sd+=s;
s.Empty();
b=ar.ReadString(s);
}
ev->GetEditCtrl().SetWindowText(sd); }//上面代码读写文本时,不能分行分段,不知何故,特求教各位

解决方案 »

  1.   

    其实没有必要这么做,:)如果你跟踪Doc类的Serialize(),进去后,你就发现,Doc的该函数实际上是调用View类的这个函数实现的,所以,你这里可以直接用Serialize()函数ev->Serialize(ar);//这一个语句解决读出和写入操作;放在if-else语句的后面应该可以,我曾经这么做过
      

  2.   

    fengqinggao(风清高) :
          谢谢您回答我的问题,但依您所言,不能读出任何数据,并有提示:“非预期的文件格式”,不知何故
      

  3.   

    你的方法不能读出控制符的原因是ReadString本身是按行读数据,每次读出一样碰到分行分段的字符后,就不读了,它是以控制字符为结束读数据的标志的,所以读不出来在文件中,可能每行就是一段,因为分行符号是不存在的(我的理解),也有可能是多少个字符以后自动分行,不过我觉得前者的可能性大些,你读出的数据不能自动换行(也就是分行了),可能是你的View的设置问题。至于不能分段,你可以在需要分段的地方(可能是每次读数据后),增加“\r\n”,就可以分段了至于我的方法,不知道你的文件是什么格式的,按道理这和格式无关啊,我用我做的程序,随便什么格式都能打开啊,奇怪了,你跟踪一下看看,看出什么错误了。实在不行,如果可以的话,发至[email protected],我调试一下
      

  4.   

    用SerializeRaw就没问题了
    此问题已解决,谢谢两位