File durchsuchen
-
mmhh........
ich hab da ein Programm in VB geschrieben und da hab ich eine Möglichkeit gefunden das zu "verschneller"! aber das dauert mir noch zulange!!(also bei 600 000 zeilen so um die 10 minuten!!!)Und da wollte ich nur wissen ob es in C/C++ auch so eine Möglichkeit gibt??
-
Hast du überhaupt gelesen was ich geschrieben hatte?
-junix
-
Okay, kann ich den mit STL das Fil so öffnen das ich lese- UND schreib-Zugriff auf das File habe? Mit ofstream hab' ich doch nur schreib Zugriff... oder?
-
Klar doch... siehe Thread den ich verschoben habe. fstream ist das Mittel der Wahl.
-junix
-
mmhh.... ja ich schau mal! und bastel ein bischen rum!!!!!
Und als ich angefangen habe zu posten war dein Beitrag noch nich da @junix
also danke an euch!
SEF
-
Ich hab' jetzt mal versucht, das File so auszulesen:
char c; AnsiString test_AS; while (Stream_prvt.good()) // loop while extraction from file is possible { Stream_prvt.get(c); // get character from file test_AS+=c; }
aber so steht irgendwie nichts in test_AS... Warum? Kann da jemaand helfen? Danke!
-
Wieso so umständlich und langsam? Wieso nicht mit new char[filesize] ein char-array erzeugen und mit fstream::read in einem Zug einlesen? Das geht erheblich schneller.
-junix
-
stimmt eigentlich, jetzt hab ich's so gelöst:
char *File_ch = new char[10240]; Stream_prvt.read(File_ch,10240); // get ganzes File Stream_prvt << "#" << Section.c_str() << "\n"; delete File_ch; File_ch=NULL;
So steht aber was ganz komisches in File_ch und sowiso, kann ich die Grösse so gross angeben wie das File ist?
-
fstream::seek zum ende und dann fstream::tell. Damit weisst du die Grösse. Ausserdem solltest du den Allokierten Puffer mit memset() vielleicht noch erst auf 0 initialisieren.
-junix
-
Hier gehts weiter bezüglich fstream:
http://c-plusplus.net/forum/viewtopic.php?t=51104-junix