Dateioperationen/ Datei auslesen und größe bestimmen
-
Hallo, ich weiss das das Thema schon 1000x behandelt wurde aber ich kriegs nicht hin. hoffe ihr könnt mir weiter helfen. ich möchte eine textdatei auslesen und auf den inhalt prüfen. also eigentlich so:
- öffne datei
- lese datei--> zeichen vorhanden -> bestimmte operation
--> datei leer -> andere operation- schliesse datei.
ich hab schon nach möglichkeite gesucht die größe der datei zu bestimmen oder den inhalt. aber irgednwie finde ich nichts richtiges (was auch funktioniert).
FILE* file = fopen("My Documents/scan.txt","r"); . . . ????? . . if(datei leer){ fprintf (file, "%s\n","Datei leer."); }else{ fprintf (file, "%s\n","Datei gefüllt."); } fclose(file);
-
Ich glaube fread() gibt dir die Anzahl der gelesenen bytes zurück. Bei einem leeren File müssten das 0 sein. Das ist allerdings nicht C++...
-
Eine übliche Vorgehensweise wäre das Springen ans Ende der Datei und das anschließende Ermitteln der Dateiposition:
fseek( file, 0, SEEK_END ); // ans Ende springen long length = ftell( file ); // Größe ermitteln // Fehlerüberprüfung, ist length == -1? fseek( file, 0, SEEK_SET ); // an den Anfang zurückUnd in C++:
ifstream file( "My Documents\\..." ); file.seekg( 0, ios::end ); // analog... size_t length = file.tellg(); file.seekg( 0, ios::beg ); // Fehlerüberprüfung, ist (!file)?
-
danke
-- habs jetzt so gelöst.FILE* rFile = fopen("test.txt","r"); fseek (rFile , 0 , SEEK_END); lSize = ftell (rFile); fclose(rFile); if(lSize > 0){