500x fopen und fclose



  • Hallo,

    ich versuche sehr viele Textdateien zu öffnen und dann in geöfneten Dateien irgendwelche Strings zu suchen. Ich kann die Dateien ca 200x öffnen, aber danach bekomme ich den Fehler fopen = NULL. Ich schliesse die Dateien auch (glaube ich)

    Hier mein Code

    bool METSENS::testdateioffnen(char* resdateiname)
    {
         int len = strlen(resdateiname);
         //Dekleration in h-datei    char *respfadname;
         respfadname = new char[len+53];
         strcpy(respfadname,"C:\\User\\ilker\\TXT-DB\\L_zff_results_metsens_RSLT\\");
         strcpy(respfadname, resdateiname);
         quelle = fopen(respfadname, "r");
        if (quelle == NULL)
         {
             //irgenswas1...
             delete [] respfadname;
             delete resdateiname;
             return false;
         }
         else
         {
             //irgenswas2...
             delete [] respfadname;
             delete resdateiname;
             return true;
         }
         fclose (quelle);      //Datei schliessen
         return true;
    }
    

    Wo mache ich ein Fehler? Gibt es andere Methoden mehrere Dateien (ca. 15000 txt Dateien) zu öffnen, bearbeiten und dann wieder zu schliessen.

    Danke im Voraus

    Ilker



  • Im if(quelle == NULL) springst du in beiden Zweigen mit return aus der Funktion. fclose wird nie aufgerufen.



  • Jep 🙂

    Du hast recht... alles bestens, es funtzt wieder richtig.

    Danke



  • bool METSENS::testdateioffnen(const char *resdateiname) 
    { 
      std::string respfadname("C:\\User\\ilker\\TXT-DB\\L_zff_results_metsens_RSLT\\");
      respfadname.append(resdateiname);
      return std::ifstream(respfadname);
    }
    


  • @ssm

    danke


Anmelden zum Antworten