CStdioFile myFile; 
for (int i=0;i< m_listbox.GetCount(); ++i ) {
 if (m_listbox.GetSel(i)){
 CString text = "";
 m_listbox.GetText(i, text);
 myFile.Open(text, CFile::modeRead | CFile::typeBinary|CFile::typeText, 0);
 CString str1;
 if(myFile!=NULL)
 { myFile.ReadString(str1);//这里报错,不能是空字符。  m_edit.GetWindowTextA(str1);  }

// myFile.Close();
 }
}
这是我程序中的一段代码,我想通过点击按钮提取到m_listbox中选择的文件名,如何通过myFile.ReadString将里面的内容读出来,可是没有任何内容显示
求高手解答。

解决方案 »

  1.   

    我用CStdioFile的代码如下:
    CStdioFile  csfile;
    CFileException ex;
    CString readLineValue; if (!csfile.Open(cstrPath,CFile::modeRead,&ex))
    {
    AfxMessageBox(L"Open datafile failed.");
    return FALSE;
    }

            csfile.ReadString(readLineValue);供楼主参考。
      

  2.   

    其它方面没看,CFile::typeBinary|CFile::typeText 这两个是互斥的。
      

  3.   

    这样写试一下,看是否文件打开成功了:
    CStdioFile myFile;  
    for (int i=0;i< m_listbox.GetCount(); ++i )
    {
      if(m_listbox.GetSel(i))
      {
        CString text = "";
        m_listbox.GetText(i, text);
        if(myFile.Open(text, CFile::modeRead))
        {
          CString str1;
          myFile.ReadString(str1);
          m_edit.SetWindowText(str1);       
        }
      }
    }
      

  4.   

    用了你给的代码,因为我要读取的是.csv文件,点击按钮之后显示Open datafile failed.
      

  5.   

    好像不是的,我想用CStdioFile或者CFile来读取逐行读取和显示.cvs文件,但是发现根本没有打开文件,
    请问会读取.csv文件么。
      

  6.   

    csv文件没什么特殊的,就当做一般文件来读取,我现在工程里就是用CStdioFile来读取的,打开文件的时候,把路径里的所有'\'换成'\\'
      

  7.   


    CStdioFile myFile; 
    for (int i=0;i< m_listbox.GetCount(); ++i ) {
     if (m_listbox.GetSel(i)){
     CString text;
     m_listbox.GetText(i, text);
     if (text.Find(13,1)!=-1)  { 
     text.Delete(text.GetLength() - 2, 2);} 
     bool aaa = myFile.Open(text, CFile::modeRead, 0);
     int position = 0;
      myFile.Seek(position, CStdioFile::begin);
     while(aaa) {
     CString str1;
     char ReadBuf[258];
     int ret = myFile.Read(ReadBuf, 258);
     myFile.ReadString(str1);
     m_edit.SetWindowTextA(str1);
     position += ret;
     }  }
    }
    我是想先读取一行内容,如何通过position进行起始点的移动,可是我现在一运行到Seek()函数就报错,直接弹出一个无法识别代码的对话框。
    求高手给.csv的具体操作。
      

  8.   


    是的,现在我的疑问是怎么对char*型的变量进行字符的比较并删除字符为13的值。