MFC多文档下,File->Open,打开任意一个txt文件,读取里面数据,请高手指点,谢谢!

解决方案 »

  1.   

    方法太多了,API,或者Cfile类都可以
      

  2.   

    char cmd_data[SIZE];
    CString str,str1;
    FILE *fp;
    memset (cmd_data,0,SIZE);
    if ((fp=fopen("\\test1.TXT", "rb+"))==NULL)
    {
    return ;
    }
    fseek(fp, 0, SEEK_SET);
    while (!feof(fp))
    {
    fread(&cmd_data,SIZE,1,fp);
    str=cmd_data;
    }
    fclose(fp);
      

  3.   

    CStdioFile读取。另外不要随便说任意,一任意就没边了,编码问题路径问题,权限问题不一而足。
      

  4.   

    CStdioFile,CFile都可以
    找点代码看看,看看msdn就ok了
      

  5.   

    重载CDocument::OnOpenDocument(),在里面做相应处理。
      

  6.   

    CStdioFile,CFile这些是MFC的
    也可以直接用c的,比如
    :FILE* file = ::fopen(filename,
    "wt");
    ::fwrite(pData, len,1,file);
    ::fread(...);
    ::fclose(file);注意fopen第二个参数的设置
      

  7.   

    最简单的方法,在VC向导的最后一步,让你的view继承CEditView
    作的再好点,就再重写CXXXApp::OnFileOpen(可以用Class Wizard帮助生成)
    在里面添加类似下面的代码:
    CString szFilter = _T("txt文件 (*.txt)|*.txt|");
    CFileDialog _fileDlg(TRUE,NULL,NULL,OFN_OVERWRITEPROMPT,szFilter,NULL);
    CString _path;
    _fileDlg.DoModal();
    POSITION pos =_fileDlg.GetStartPosition();
    if (pos) 
    {
    _path = _fileDlg.GetNextPathName(pos);
    if(_path.GetLength() == 0 ) 
    return;
    }//if

    OpenDocumentFile(_path);
    这种方法能打开大部分,但绝不是任意。文件大小好像超过一定长度就不行了。MFC里面的限制
      

  8.   

    谢谢大家。貌似我没有说太清楚。2楼和7楼打开的文件,都需要指定一个文件名,这个我是知道的。我想不定义文件名,通过操作窗口的file里的Open,随意打开一个文件,然后读出里面的数据。
      

  9.   

    比如2楼的:if ((fp=fopen("\\test1.TXT", "rb+"))==NULL),test1.TXT是你自己指定的文件,如果现在不知道文件名是啥,怎么弄呢?