Eof

mstank

Mitglied
Hallo!

Ich möchte eine ASCII-Datei Zeilenweise auslesen.

C++ Code:

Code:
void CLadenSpeichernDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// ZU ERLEDIGEN: Hier Code zum Speichern einfügen
}
else
{
// ZU ERLEDIGEN: Hier Code zum Laden einfügen
while(m_c_Zeichen != EOF)
{
ar >> m_c_Zeichen;
m_s_Zeile += m_c_Zeichen;
}

Der Compiler gibt auch grünes Licht, aber beim Öffnen der Datei wird in einer Messagebox "unerlaubtes Dateiformat" angezeigt.

Wenn ich statt EOF besser '\r' wähle, dann erhalie ich die Ausgabe einer Zeile und ein | am Ende der Zeile. Ich möchte 2 while-Scheifen verschachten. Die äußere bis EOF und die innere bis CR. Wie kann ich das unter Serialize machen. Habe da keinen Schimmer.

THX
 
Hi,

wie sieht denn deine CArchive und CFile Definition aus?

PS: hier gibt es soetwas wie "|CODE| MyC++Code |/CODE|" liest sich einfach besser
Code:
MyC++Code
 
Ich denke das ist das, was du willst.

Code:
      char c = 0;
      CString strText;   // gesamte Dateiinhalt
      while(ar.Read(&c, 1) == 1)  // solange Zeichen gelesen werden können
      {
         CString strZeile;  // eine Zeile
         while(c != '\r')
         {
            strZeile += c;
            if(ar.Read(&c, 1) < 1) 
            {
               // end of file
               break;
            }
         }
         strText += strZeile;
      }
 
Zurück