Datei zeilenweise auslesen
-
Hallo!
Bin ein Neuling in Visual C++;
Ich versuche gerade die erste Zeile aus einem File auszulesen.
Nur jetzt weiß ich nicht, ich Dummkopf, wie ich dann auf die Zeile zugreifen kann. Dann will ich die erste Zeile in ein Textfile schreiben und die nächste Zeile auslesen, solange bis das File aus ist.
Stimmt das bis jetzt mal?
Kann mir da jemand helfen??danke und lg
meritchar* pFileName = "Chqtest.csv";
CStdioFile fInput;
char buffer[5];try
{
fInput.Open(pFileName, CFile::typeText);
fInput.ReadString(buffer,5);
fInput.Close();
}
catch(CFileException *e)
{
if(e->m_cause == CFileException::endOfFile)
MessageBox("end of file");
e->Delete();
}
-
Nimm doch für Buffer einen CString, dann hast du schon mal nicht mehr das Längenproblem.
char* pFileName = "Chqtest.csv"; CStdioFile fInput; CString buffer; try { fInput.Open(pFileName, CFile::typeText); fInput.ReadString(buffer); MessageBox(buffer); fInput.Close(); } catch(CFileException *e) { if(e->m_cause == CFileException::endOfFile) MessageBox("end of file"); e->Delete(); }
Sonst sieht das so weit schon okay aus. Probier doch mal.
-
Funzt jetzt!
-
Du könntest es ausserdem so machen
/**** Die Ultimative Dateileselösung ;-) ****/ CStdioFile ReadFile,WriteFile; bool bRead = false; CString pfad,dateiname,Zeile; ReadFile.Open(pfad + dateiname, CFile::modeRead); WriteFile.Open(pfad + dateiname2, CFile::modeCreate | CFile::modeWrite); //für die erste Zeile, und um bRead auf true zu setzten bRead = ReadFile.ReadString(Zeile); WriteFile.WriteString(Zeile); while(bRead) //liest jetzt solange die datei (Zeilenweise) bis er am ende ist (bRead wär dann false oder so) { bRead = ReadFile.ReadString(Zeile); //weiterlesen WriteFile.WriteString(Zeile); //weiterschreiben //ReadFile.Close(); // je nachdem wo du es haben willst //WriteFile.Close(); } ReadFile.Close(); WriteFile.Close();
Das musst du natürlich noch ein bisschen in dein Beispiel einarbeiten, aber im Prinzip ist es genau das was du willst (nur ohne try, catch usw...)
-
danke, du bist echt spitze.