000
18.02.2006, 17:57 Uhr
~SomeTobi
Gast
|
Hallo zusammen,
ich würd gerne die Zeilenzahl eines Streams ermitteln, damit ich eine "Fortschrittsanzeige" machen kann wie weit die Bearbeitung gerade ist. Kleiner Democode:
C++: |
int main(){ ifstream input("eineDatei.txt"); int lineCount = getLineCount(input); string line; int progress = 0;
while(!input.eof()){ line = getline(input, temp);
cout << "Bearbeite Zeile: " << line << " von " << lineCount << endl; //führe operationen aus }
}
int getLineCount(istream &istr){ int i;string temp; while(!istr.eof()){ getline(istr,temp); i++; } return i; }
|
Das Problem ist dass der Stream nach Aufruf der Methode "ungültig" ist weil ich den wohl bis zum Ende gelaufen bin. Auch ein istr.seekp(0,ios::beg) am Ende der Methode bewirkt leider nichts Irgendwelche Ratschläge ??
P.S: Den Code hab ich eben aus dem Kopf zusammengeschrieben, also falls das irgendwas syntaktisch nicht ok ist, einfach drüber hinwegsehen..hab das Original nicht hier |