Dateilänge
-
Hallo,
ich wollte die Dateilänge einer unter Visual C++ durch ifstream geöffneten Datei ermitteln. In der Hilfe wurde der Befehl _filelenght() angegeben, der allerdings in der Datei "io.h" nicht vorhanden ist und auch sonst nirgendwo gefunden wurde.
Vielen Dank im Voraus für die Hilfe,MFG,
The_Phy
-
erstmal2 möglichkeiten, es gibt sicher noch ne schönere
#include <io.h> #include <fcntl.h> #include <cstdio> #include <iostream> #include <fstream> using namespace std; int main( ) { ///////// 1. möglichkeit ///////////// int fHandleIn = _open("test.txt", _O_BINARY); int len=_filelength (fHandleIn); cout<<"test1: "<<len<<endl; _close(fHandleIn); ///////// 2. möglichkeit ///////////// ifstream source("test.txt", ios::binary |ios::in); if (!source){ return 0; } char c; long int laenge = 0; source.get(c); // zeichen ... while ( source.good() ){ ++laenge; source.get(c); } source.close(); cout<<"test2: "<<laenge<<endl; }
-
source.close();
lass das
-
doppelt hält besser ...
-
Danke, ich werds mal Ausprobieren. Ich finde es nur komisch, dass mein Compiler _filelength() als unbekannt angab, obwohl ich alle erforderlichen Headerdateien eingebunden hatte. Ich probiers mal aus und meld mich nochmal.
The_Phy
-
Die erste Möglichkeit ist ja am Rande des Standards und die zweite total lahm*****ig. Wenn dein Programm nur unter Windows laufen soll würd ich eher die Winapi-Funktionen benutzen, also GetFileSize. Oder bei ifstream mit seekg/tellg arbeiten wie es hier beschrieben wird Ströme und Dateien in C++
-
Original erstellt von <fgh>:
Die erste Möglichkeit ist ja am Rande des Standards und die zweite total lahm*ig.nur das ich im konsolen und dos forum oft genug erlebt habe, daß kein winapi gefordert ist und standard hier sowieso nicht angesagt ist... wir sind nicht im c++ forum
aber wie wärs mal mit anmelden?
-
@elise: Das sich bei dir gleich jeder der sich zu Wort meldet registrieren muss...
MfG SideWinder
-
das war mal anders... aber gerade ist es so!
-
Sie meinte anmelden, nicht registrieren.