CStdioFile, wie kann ich abfragen, ob ich am Dateiende bin?
-
Hi Leute,
ich arbeite gerade mit CStdioFile. Jetzt stehe ich vor dem Problem, das ich abfragen muss, ob ich am Dateiende angekommen bin. Wie kann ich mit CStdioFile abfragen, ob ich am Dateiende bin? Etwa sowas wie if (File.EOF = true)
Danke im Voraus für Eure Hilfe.
Grüsse
xthing
-
*nachguckt* Weder CStdioFile noch CFile (die Basisklasse) bietet eine direkte Fehlerabfrage - eventuell wäre es eine gute Idee, auf fstreams umzuwechseln.
Anderenfalls könnte ich noch folgendes anbieten:
CStdioFile datei; ... if(feof(datei.m_pStream)) ...Edit: Oder alternativ sollte auch gehen:
if(datei.GetPosition()>=datei.GetLength())...
-
indem du die größe des buffers & die anzahl der zu lesenden zeichen unter read festlegst.
CStdioFile *file = new CStdioFile(); CFileStatus rStatus; char *pBuf; if( file->Open( lpstrFileTitle, CFile::modeRead | CFile::typeBinary ) ) { file->GetStatus(rStatus); pBuf = new char [rStatus.m_size+1]; file->Read(pBuf,rStatus.m_size); file->Close();//Schließe datei } delete file; delete pBuf;
-
MSDN schrieb:
CStdioFile::ReadString
Return Value
A pointer to the buffer containing the text data. NULL if end-of-file was reached without reading any data; or if boolean, FALSE if end-of-file was reached without reading any data.

Deswegen habe ich immer so eine Schleife:
while (datei.ReadString(strZeile)) { // tuwas }