2013-01-07 603 views
1

我有一個csv文件讀取問題。我對mfc很新,希望有人能幫助我。所以...我有一個按鈕,並與我打開文件對話框,並選擇CSV文件。在csv文件中,我有不同的形狀(矩形,橢圓,多邊形)與顏色和位置信息(separtor是;)。現在我需要在ListBox中顯示這些信息,並且在這裏我卡住了。我到目前爲止(代碼)...我不知道它是好的,我找不到任何好幫手,所以我希望有人可以給我一個提示。C++ mfc csv文件讀取

void CDialogDrawing::OnBnClickedButton2() 
{ 

     TCHAR filtri[] = _T("CSV files (*.csv)|*.csv||"); 
     CString path; 

     CFileDialog dlg(TRUE, _T("csv"), _T("*.csv"), OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, filtri); 
     dlg.m_ofn.lpstrTitle = _T("Open..."); 

     if(dlg.DoModal() == IDOK) //OK 
     { 
     path = dlg.GetPathName(); 
     // 
     CStdioFile readFile; 
     CFileException fileException; 
     CString strLine; 

     if(readFile.Open(path, CFile::modeRead, &fileException)) 
     { 
      while (readFile.ReadString(strLine)); 
      { 
        seznamLikov.AddString(strLine); 
      } 
     } 
     else 
     { 
      CString strErrorMsg; 
      strErrorMsg.Format(_T("Can't open file %s , error : %u"), path, fileException.m_cause); 
      AfxMessageBox(strErrorMsg); 
    } 
    readFile.Close(); 
} 
} 

回答

1

尾隨分號while後:

while (readFile.ReadString(strLine)); 
{ 
    seznamLikov.AddString(strLine); 
} 

刪除它,因爲它是等效於:

while (readFile.ReadString(strLine)) {} 

{ 
    seznamLikov.AddString(strLine); 
} 

意思AddString()將只被調用一次,ReadString()失敗之後。