000
08.12.2007, 18:05 Uhr
tester34
|
Hallo,
wie kann ich in einer Datei die Zeilen zählen? Das mit den Wörtern, zeichen und sätzen hat schon hin. Danke für die Hilfe!
Mein Vorschlag:
C++: |
#include "stdafx.h" #include <iostream> #include <fstream> #include <stdlib.h> #include <stdio.h> using namespace std;
int analysiereDatei(char* , int& , int& , int& ); int file_exists(char*);
int main(int argc, char* argv[]) { int wort=0, satz=0, zeile=0; cout<<"|------------------------------------------------------------------------------|"; cout<<"|---------------------------DATEIINHALT ANALYSIEREN----------------------------|"; cout<<"|------------------------------------------------------------------------------|"; if(argc<2) { cout<<"\n\nZu wenig Argumente angegeben!\n\n"; system("PAUSE"); return 0; } else { file_exists(argv[1]); cout<<"\n\nSie haben die Datei \""<<argv[1]<<"\" untersucht.\n"; cout<<"\nDiese enthaelt "<<analysiereDatei(argv[1], wort, satz, zeile)<<" Zeichen.\n"; cout<<"Ausserdem finden sich in der Datei "<<wort<<" Woerter, "<<satz<<" Saetze und "<<zeile<<" Zeilen.\n\n\n\n"; } system("PAUSE"); return 0; }
int analysiereDatei(char* dateiname, int& wort, int& satz, int& zeile) { ifstream einlesestrom; //Datei-Einlesestrom mit dem Namen "einlesestrom definieren" einlesestrom.open(dateiname, ios::in); //zeigt auf ersten eingegebenen Teil nach dem Programmnamen char c; char feld[1000]; int zeichen=0; while(einlesestrom.get(c)) { zeichen++; //Zeichenzähler if(c==0x20) //Wenn c ein Leerzeichen ist { wort++; } else if(c=='.'||c=='!'||c=='?') //bei Vergleich immer HOCHKOMMAS!!! { satz++; } } einlesestrom.close(); einlesestrom.open(dateiname, ios::in); while(einlesestrom.getline(feld,1000)) { satz++; } einlesestrom.close(); return zeichen; }
int file_exists(char* dateiname) { try { ifstream fileopen; //Dateistrom mit Namen fileopen fileopen.open(dateiname, ios::in); if(!fileopen) //fileopen liefert true zurück wenn alles i.O., wenn nicht true, dann... { fileopen.close(); //Datei schließen throw -1; } } catch(int f) { cout<<"\n\nFehler beim oeffnen der Datei bzw. Datei wurde nicht gefunden!\n\n"; return 0; } }
|
MfG Tobi Dieser Post wurde am 08.12.2007 um 18:06 Uhr von tester34 editiert. |