Hallo!
Erstmal eine Beschreibung was das Programm machen soll:
Öffnen einer Datei, entfernen von html code, speichern in eine Text-Datei.
An sich funktioniert alles - nur ich möchte das man den Dateinamen der (HTML)-Datei als Parameter übergeben kann.
So enstand der Untenstehende Code.
Auf den ersten Blick funktioniert alles der Dateiname wird den so genannten String übergeben.
Doch auf einmal schreibt er nichts mehr in die Ausgabe *.txt.
Drei Run-Möglichkeiten.
1. Exe Starten > Dateiname eingeben (da kein zusätzlicher Parameter übergeben wurde) >> Datei wird fehlerlos erstellt
2. Konsole öffnen > "...exe dateiname" > Dateinname wird richtig angezeigt >> Datei wird fehlerlos erstellt
3. Datei per Drag'n'Drop auf die Exe ziehn > Dateinname wird richtig angezeigt >> doch es wird garkeine Ausgabedatei erstellt (txt wird richtig eingelesen)
Der Code:
Alles anzeigen
BTW: Seht Ihr dass ich noch keine Idee hatte wie ich die Größe der Datei vorher abfragen kann und somit keinen festen Speicher vergeben muss.
Erstmal eine Beschreibung was das Programm machen soll:
Öffnen einer Datei, entfernen von html code, speichern in eine Text-Datei.
An sich funktioniert alles - nur ich möchte das man den Dateinamen der (HTML)-Datei als Parameter übergeben kann.
So enstand der Untenstehende Code.
Auf den ersten Blick funktioniert alles der Dateiname wird den so genannten String übergeben.
Doch auf einmal schreibt er nichts mehr in die Ausgabe *.txt.
Drei Run-Möglichkeiten.
1. Exe Starten > Dateiname eingeben (da kein zusätzlicher Parameter übergeben wurde) >> Datei wird fehlerlos erstellt
2. Konsole öffnen > "...exe dateiname" > Dateinname wird richtig angezeigt >> Datei wird fehlerlos erstellt
3. Datei per Drag'n'Drop auf die Exe ziehn > Dateinname wird richtig angezeigt >> doch es wird garkeine Ausgabedatei erstellt (txt wird richtig eingelesen)
Der Code:
Quellcode
- #include <iostream>
- #include <fstream>
- #include <string>
- using namespace std;
- int i;
- char zeichen,text[1000000];
- string dateiname;
- int htmlin(); // Oeffnet Datei und speichert den Inhalt in den char text
- int txtout(); // Entfernt HTML aus dem Inhalt und schreibt den Rest in Textdatei
- int main(int argc, char *argv[])
- {
- i=argc-1;
- dateiname=argv[i];
- cout<<"argc= "<<argc<<endl;
- cout<<"i= "<<i<<endl;
- cout<<"dateiname= "<<dateiname<<endl;
- if(i==0)
- {
- cout<<"Dateiname eingeben: ";
- cin>>dateiname;
- }
- htmlin();
- txtout();
- cout<<"Enter zum Beenden"<<endl;
- getchar();
- };
- int htmlin()
- {
- ifstream htmldatei;
- htmldatei.open(dateiname.c_str());
- if ( ((bool)htmldatei)==false )
- {
- cout<<"Datei wurde nicht gefunden"<<endl;
- getchar();
- return 0;
- };
- i=0;
- while(!htmldatei.eof())
- {
- htmldatei.get(zeichen);
- text[i]=zeichen;
- i++;
- };
- htmldatei.close();
- return 0;
- };
- int txtout()
- {
- ofstream txtdatei;
- txtdatei.open("html.txt");
- if ( ((bool)txtdatei)==false )
- {
- cout<<"html.text konnte nicht geöffnet werden"<<endl;
- getchar();
- return 0;
- };
- //Schreibe alles was nicht zwischen < > steht in die Datei
- for(i=0;i <= strlen(text);i++)
- {
- if(text[i] == '<')
- {
- while(text[i]!='>')
- i++;
- }
- else
- txtdatei<<text[i];
- };
- txtdatei.close();
- return 0;
- };
BTW: Seht Ihr dass ich noch keine Idee hatte wie ich die Größe der Datei vorher abfragen kann und somit keinen festen Speicher vergeben muss.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von SITDnow ()