我的应用是这样的:CString add="E:\test.html";
CFile file;
file.Open(add,CFile::modeRead|CFile::typeBinary);
char* text=new char[file.GetLength()+1];
int read=file.Read(text,file.GetLength());
text[read]=NULL;至此text操作完成,现要将text中的内容拷贝到CString对象中:
我这样操作过都不行,
CString t(text);
CString t(*text);
CString t(text,strlen(text);
CString t(*text,strlen(text));
CString t(text,file.GetLength()+1;
CString t(*text,file.GetLength()+1);CString t;
t.format("%s",text);
但以上操作都不能成功的将char text[]中的内容拷贝到CString对象中,请问怎样做可以安全的实现?谢谢!

解决方案 »

  1.   

    我怀疑你就根本没把内容读出来。跟踪一下text看看对不对
    最起码 add的值应该是CString add="E:\\test.html";
    另外text[read]=NULL;最好写成 '\0';
      

  2.   

    读出来了,而其我还用这个char又存了一个CFile到html文件,用Ultra Compare做了对比,结果文件一致。
      

  3.   

    还有这个Add是用来给大家看了,真正应用中CFile::Open调用是第一个参数是从一个CFileDialog中得到的,所以这个请放心,文件是读出来的的。
      

  4.   

    现在我是这一模拟的:long size=0;
    CString buf;
    buf.Empty();
    while(size<file.GetLength())
    {
      char text[4001];
      char text[0]=NULL;
      long read=file.read(text,4000);
      char[4000]=NULL;
      buf+=CString(text);
      size+=read;
    }
    buf.Getlength();  //这几返回的也是正确的文件长度