Suche funktion zum finden der letzten datei.



  • Hi, ich suche eine Funktion, mit der ich eine *.txt Datei in einem Ordner anlege. Der Name soll eine int-Zahl sein und automatisch fortlaufend generiert werden, auch wenn das Programm zwischendurch beendet wird.

    Mein Programm müsste also erst im Ordner die Datei mit der höchsten Nummer n finden und dann eine Datei mit dem Namen n+1 generieren.

    Einfach mit fopen oder sowas...



  • Mit ANSI C kenne ich nur eine Möglichkeit - du testest alle Kandidaten von "0" an durch, bis du auf eine nicht-existierende Datei stößt:

    char fname[14];
    FILE* datei;
    for(int i=0;i<MAX_INT;++i)
    {
      sprintf(fname,"%d.txt",i);
      datei = fopen(fname,"r");//scheitert, wenn die Datei nicht existiert
      if(datei==NULL) break;
      fclose(datei);
    }
    datei = fopen(fname,"w");
    ...
    

    Alternativ legst du dir eine Config-Datei an, in der du die letzte gültige Nummer einträgst und bei Bedarf rausholst (und überschreibst).

    Jenseits von Ansi kannst du auch Hilfsfunktionen des verwendeten Betriebssystem verwenden, um alle Dateien des Zielverzeichnisses aufzulisten und die "letzte" ausfindig zu machen.



  • scheitert der ansatz nicht auch, wenn du keinen lesezugriff auf die entsprechende datei hast??


Anmelden zum Antworten