Existenztest der Txt-datei ...



  • //der Fehler kommt bestimmt hier:
    cin.getline(Notizen,199,'\n'); //aua aua
    ifstream Test(Notizen);

    FILE * __cdecl _tfsopen (
            const _TSCHAR *file,
            const _TSCHAR *mode
            ,int shflag
            )
    {
            REG1 FILE *stream;
            REG2 FILE *retval;
    
            _ASSERTE(file != NULL);
            _ASSERTE(*file != _T('\0'));//hier knalt's
    ....
    

    zu umgehen: schon gesagt s.Seite 1

    .....
    das ist aber auch nicht so ganz sauber hier:
    fstream Ausgabe("Notizen.txt");
    gib mal eine 'Datenflußrichtung' an;-)



  • freshman schrieb:

    //der Fehler kommt bestimmt hier:
    cin.getline(Notizen,199,'\n'); //aua aua
    ifstream Test(Notizen);

    FILE * __cdecl _tfsopen (
            const _TSCHAR *file,
            const _TSCHAR *mode
            ,int shflag
            )
    {
            REG1 FILE *stream;
            REG2 FILE *retval;
    
            _ASSERTE(file != NULL);
            _ASSERTE(*file != _T('\0'));//hier knalt's
    ....
    

    zu umgehen: schon gesagt s.Seite 1

    .....
    das ist aber auch nicht so ganz sauber hier:
    fstream Ausgabe("Notizen.txt");
    gib mal eine 'Datenflußrichtung' an;-)

    Wenn er keine 'Datenflussrichtiung' angibt, funktioniert lesen, wie auch
    schreiben. Er muss den Openmode nicht zwangsweise spezifizieren.

    mfg
    v R



  • @vir rel: okay, wußte ich net, aber....



  • juhi ....
    Danke für die vielen Beiträge .... werd das gleich mal ausprobieren. THX
    @freshman: du keine ahnung wie die heißt .... ich nehm schon soo viele Drogen da kann man auch schon ma den überblick verlieren *G* 😉

    THX all and cu



  • Hi Leutz....

    Ich kann mir gut vorstellen das dieses Tehma langsam echt nervt aber irgendwie will mich C++ verarschen 😉
    Nun klappt endlich der Existenztest meiner Txt-Datei aber nun speichert er auf einmal nicht mehr den Text den man eingibt. hat doch vorher auch noch geklappt !??? 😮
    ich versteh garnichts mehr .....

    ...
    ...
    ...
    
       break;
    
    //#######################################
    
    	case 2:
    
    		cout << "\nNotizbuch:  Beta1.0"   << endl;
    		cout << "----------------------" << endl;
    
            cout << "\nOptionen:"                          << endl;
    
    		//Menü-Start
    		cout << "(1)-- Notiz schreiben"                << endl;
    		cout << "(2)-- Notizen öffnen   "              << endl;
    		//Menü-Ende
    
    		cout << "\nGeben sie ihre Option ein:"         << endl;
    
    //#########################################
    
    		cin  >> Wert;
    
    		if(Wert == 1)
    
    		{
    			// clrscr()!
    
                // Existenztest der Txt-Datei zur speicherung der Eingaben
    
    		    string Notizen;
    
                cout << endl << "\nDateiname: "<< endl; 
    
                cin >> Notizen; 
    
                ifstream Test( Notizen.c_str() );
    
    			// Existenztst-Ende
    
              if( !Test ){ 
    
                //Fehlerbehandlung wenn datei nicht vorhanden
    
    		cout << "Die von ihnen eingegebene Datei ... "                 << endl;
    	    cout << "existiert leider nicht!"                              << endl;
    	    cout << "Um diese Optionen nutzen zu koennen müssen sie"       << endl;
    	    cout << "eine neue Txt-datei in dem Programm Ordner erstellen!" << endl;
    
    		cout << "\n";
    
    		getch();
    
    		  } 
               else{ // Fortgang des Prozesses wenn Txt-Datei vorhanden ist.
    
    	        cout << "\nDatei zur speicherung ist vorhanden ...." << endl;
    			cout << "\nSie koennen fortfahren!" << endl;
    
    			   // Sleep()
    			   // clrscr()
    
    			   //speicherung der Daten in die Txt-Datei
    
    			cout << "\nGeben sie nun ihre Notiz ein:" << endl;
    
                string Notiz;           // Hier wird eine String- Variable deklariert
                                        // die den eingegebenen Text speichert.
    
                ofstream Eingabe("Notizen.txt");   // Datei wird geöffnet.
    
                getline(cin, Notiz);             // zum einlesen der Buchstaben mit Leerzeichen!
    
                Eingabe << Notiz << endl;   // Eingabestrom wird verwendet um den Text in die
                                           // Txt-Datei "reinzuschieben"
    
    			cout << "\nIhre Eingaben wurden gespeichert" << endl;
    
    			getch();
    
    return 0; 
    
    } 
    
    		}
    		else if(Wert == 2){
    
    			  //  clrscr()!
    
    			   cout << "\nIhre letzte Notiz:" << endl;
    
                   fstream Ausgabe("Notizen.txt");
    
                   while(!Ausgabe.eof()){ 
    
                    string Satz;
    
                    getline(Ausgabe, Satz);
    
                    cout << Satz << endl;
    
    				cout << "\n";
    
    			   }
    
    		}
    
    }
    
    return 0;
    
    }
    

    ich versteh das nicht ..... hat doch vorher auch funktioniert 😕

    MFG



  • warum hast du denn da so unendlich viele Leerzeilen und blanks in deinem Code -> das siht ja schrecklich aus und läßt sich nicht lesen *Augen reib*
    formattiere das doch mal ordentlich!
    übrigens: bist du sicher, daß du dir die richtige Datei anguckst?! 😉 (inter scriptum: du weißt, daß du die Datei Notitzen.txt jedes mal überschreibst und nicht anfügst, oder??)
    warum benutzt du immer getch() *heul*???
    und:

    freshman schrieb:

    warum schreibst du 2^10 mal zu oft cout<<???????



  • Hi!

    Also jetzt noch ma und ich hoffe dieses mal besser 😉

    break;
        case 2:
    
            cout << "\nNotizbuch:  Beta1.0"   << endl;
            cout << "----------------------" << endl;
            cout << "\nOptionen:"                          << endl;
            //Menü-Start
            cout << "(1)-- Notiz schreiben"                << endl;
            cout << "(2)-- Notizen öffnen   "              << endl;
            //Menü-Ende
            cout << "\nGeben sie ihre Option ein:"         << endl;
    
            cin  >> Wert;
    
            if(Wert == 1)   
            {
                string Notizen;
                cout << endl << "\nDateiname: "<< endl; 
    			cin >> Notizen; 
                ifstream Test( Notizen.c_str() );
    
                // Existenztst-Ende
          if( !Test ){ 
    
                //Fehlerbehandlung wenn datei nicht vorhanden
            cout << "Die von ihnen eingegebene Datei ... "                 << endl;
            cout << "existiert leider nicht!"                              << endl;
            cout << "Um diese Optionen nutzen zu koennen müssen sie"       << endl;
            cout << "eine neue Txt-datei in dem Programm Ordner erstellen!" << endl;
            cout << "\n";
    
          } 
           else{ // Fortgang des Prozesses wenn Txt-Datei vorhanden ist.
              cout << "\nDatei zur speicherung ist vorhanden ...." << endl;
              cout << "\nSie koennen fortfahren!" << endl;
    
              cout << "\nGeben sie nun ihre Notiz ein:" << endl;
    
             string Notiz;          
             ofstream Eingabe("Notizen.txt");   // Datei wird geöffnet.
             getline(cin, Notiz);
    
    		 Eingabe << Notiz << endl;
    
    		 cout << "\nIhre Eingaben wurden gespeichert" << endl;
    
    return 0; 
    
    }                 
        }
         else if(Wert == 2){
    
           cout << "\nIhre letzte Notiz:" << endl;
    
           fstream Ausgabe("Notizen.txt");
    
            while(!Ausgabe.eof())
    		{ 
    
             string Satz;
             getline(Ausgabe, Satz);
             cout << Satz << endl;
    		 cout << "\n";
    
      }
    
    }
    
    }
    
    return 0;
    
    }
    

    Also gute frage .... ne das wusste ich nicht das die Datei jedes mal
    überschrieben wird. Wie muss man das ändern damit ein neuer Notiz eintrag
    an den alten angehängt wird ? z.b block artig 😉

    1.Eintrag Datum
    -------
    blablablabla
    blablablabla
    blablablabla
    -------

    2.Eintrag Datum
    -------
    blablablabla

    usw ....

    aber mein eigendliches prob mit meinem code ist das diesmal überhaubt nix in die Txt-Datei geschrieben wird. Was läuft da wieder falsch !?

    Ich bin für alle antworten dankbar!

    cu



  • oh man ich hab jetzt mehrmals den Code abgesucht nach Fehlern aber
    ich finde einfach nix ....
    kann mir keiner bei meinem problem helfen !?
    please ..... Hinweise ..... Tips .... bin für jeden Ratschlag dankbar !

    cu



  • ifstream Test( Notizen.c_str(), ios::in | ios::app );
    

    Mit ios::app wird die Datei so geöffnet, das Daten nicht überschrieben sondern angehangen werden. 😉



  • Hi!

    danke für deinen Beitrag ! 🙂
    kann niemand noch irgend einen Fehler endecken !?
    hmmm ..... ich geh dann heud abend den Code noch ma durch. ^^

    cu


Anmelden zum Antworten