我需要在对话框程序中打开从编辑框输入的三个带路径的文件,打开一个文件读或写时另外两个可以关闭。但我现在
编写一个文件的读或写完全可以(程序如下),若编写两个文件的读写(即去掉下面的注释符号)就不行,编译也能通过,也不提示出错,就是不能运行下去。敬请各位指教!     ON_BUTTON 
           {
             UpdateData();   
    
             CFile file;   
             file.Open(m_F1,CFile::modeRead);                // 在m_F1对应的编辑框中输入 D:\fle1
             file.Read(&XY1,strlen("-1.03E-01"));             // file.Close();
             // file.Open(m_F2,CFile::modeRead);
             // file.Read(&XY2,strlen("-1.03E-01"));        // l在m_F2对应的编辑框中输入 D:\fle2
    
             //file.Open(m_F3,CFile::modeCreate|CFile::modeWrite);  // l在m_F3对应的编辑框中输入 D:\fle3
             //XY3=XY1+XY2;
             //  file.Write(&XY3,10); 
             // file.Close();
             // UpdateData(FALSE);

解决方案 »

  1.   

    // file.Read(&XY2,strlen("-1.03E-01")); // l在m_F2对应的编辑框中输入 D:\fle2
        file.Close();
      //file.Open(m_F3,CFile::modeCreate|CFile::modeWrite); // l在m_F3对应的编辑框中输入 D:\fle3
      

  2.   

    楼主,多建立几个CFile吧,另外想并行运行的话,还是要用多线程的啊
      

  3.   

      UpdateData();   
        
      CFile file;   
      file.Open(m_F1,CFile::modeRead); // 在m_F1对应的编辑框中输入 D:\fle1
      file.Read(&XY1,strlen("-1.03E-01"));  // file.Close();
      // file.Open(m_F2,CFile::modeRead);
      // file.Read(&XY2,strlen("-1.03E-01")); // l在m_F2对应的编辑框中输入 D:\fle2
        这里落下了文件关闭了  或者你但不调试一下
         file.Close();

      //file.Open(m_F3,CFile::modeCreate|CFile::modeWrite); // l在m_F3对应的编辑框中输入 D:\fle3
      //XY3=XY1+XY2;
      // file.Write(&XY3,10);  
      // file.Close();
      // UpdateData(FALSE);
    也可以像上面那位同学说的,多创建几个CFile
      

  4.   

    try
    {
    CFile file;
    file.Open(_T("F:\\11.txt"), CFile::modeRead);
    DWORD dwLen = file.GetLength();
    char* buf = new char[dwLen+1];
    memset(buf, 0, (dwLen+1)*sizeof(char));
    file.Read(buf, dwLen);
    AfxMessageBox(CString(buf));
    file.Close();
    delete buf;
    buf = NULL; file.Open(_T("F:\\12.txt"), CFile::modeRead);
    dwLen = file.GetLength();
    buf = new char[dwLen+1];
    memset(buf, 0, (dwLen+1)*sizeof(char));
    file.Read(buf, dwLen);
    AfxMessageBox(CString(buf));
    file.Close();
    delete buf;
    buf = NULL; file.Open(_T("F:\\13.txt"), CFile::modeRead);
    dwLen = file.GetLength();
    buf = new char[dwLen+1];
    memset(buf, 0, (dwLen+1)*sizeof(char));
    file.Read(buf, dwLen);
    AfxMessageBox(CString(buf));
    file.Close();
    delete buf;
    buf = NULL;
    }
    catch (CFileException* e)
    {
    e->ReportError();
    e->Delete();
    }