如何在Edit框中显示一个文本文件(.txt)的内容?
现有困难在于
1、与Edit框绑定的CString类的变量如何取得文本文件的内容
2、文本文件的大小是不确定的,该如何处理
先谢了

解决方案 »

  1.   

    如果是CString型变量就: m_Edit = string;  UpDateData(FALSE);
    如果是CEdit  型变量就: M_Edit.SetWindowText(string);
      

  2.   

    1. 如何取得内容? 答案是把文件打开读啊!
    2. 大小不确定?CString是不在乎大小,它自己处理内存申请。
      

  3.   

    CString str1,str2;
    CStdioFile file;
    if(file.Open(filename,CFile::modeRead|CFile::typeText)==0){
        str1="Create File"+filename+"failed!";
        AfxMessageBox(str1);
        return;
    }
    while(file.GetPosition()!=file.GetLength()){
        file.ReadString(str1);
        str2+=str1;
        str2+="\r\n";
    }
    M_Edit.SetWindowText(str2);
    其中filename为要打开文件的路径,可以用CFileDialog得到。
      

  4.   

    2、文本文件的大小不确定是没关系的,CString 会自动调整,别忘了在Edit框里设多行属性good luck
      

  5.   

    问题已解决,谢谢各位支持。尚有一疑,请指教:
    1、我在原来的实验中,打开文件用的不是CStdioFile类,而是FILE结构体,所以文件内容只能输出到Char类的变量中,接着就需要将文件内容由Char类转到CString类,但至今不知该如何转换?(这条路能走通吗?)
    2、打开文件用FILE结构体应该比用CStdioFile类节省内存空间,这种看法对吗?
    3、如风所言的CStdioFile类的实例,在用过后是否需要释放空间?我用close试过,报错。
      

  6.   

    char* -> CString的方法很简单: 
    1。CString s(char*);
    2。CString s;
       s.Format("%s",char*)
      

  7.   

    1. 如楼上所说
    2. 看法是对的,但实际上节省不了多少空间,CStdioFile继承CFile,CFile中包进去的还是C风格的文件打开方法.CStdioFile多用的空间是继承了根类CObject和父类CFile.3.CStdioFile应该在结束前调用其Close()方法,此方法主要是关闭文件,而不是释放空间,(当前硬说是释放空间也未尝不可).报错可能是你用close(),而不是Close().