[MFC] Cum citesc un fisier text, line cu linie

Despre MFC, ATL si alte biblioteci C++ de la Microsoft (forum moderat)
Post Reply
User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3778
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

[MFC] Cum citesc un fisier text, line cu linie

Post by Ovidiu Cucu » 16 Jul 2007, 15:57

Problema
Este foarte simpla. O pun totusi aici pentru ca am vazut zeci de "implementari" care mai de care mai aiurea.

Rezolvare
Folosim clasa MFC CStdioFile, specializata pentru lucrul cu fisiere text.

Exemplu

Code: Select all

void CWhateverClass::ReadTextFile(LPCTSTR pszFileName, CStringArray& arrLines) 
{ 
   arrLines.RemoveAll(); 
   CString strLine; 
   TRY 
   { 
      CStdioFile file(pszFileName, CFile::modeRead); 
      while(file.ReadString(strLine)) 
      { 
         arrLines.Add(strLine); 
      } 
   } 
   CATCH_ALL(e) 
   { 
      e->ReportError(); // shows what's going wrong 
   } 
   END_CATCH_ALL 
}
NOTA: Multa lume uita de exceptiile care pot fi aruncate atat din constructorul clasei CStdioFile cat si din functia CStdioFile::ReadString dupa care se intreaba mult si bine "what's going wrong?".
In exemplul de mai sus am "prins" eventualele exceptii folosind, simplu si comod, macro-urile MFC TRY, CATCH_ALL si END_CATCH_ALL.


<< Back to MFC index



Post Reply