Saves nummerieren

hallo HaBo,
bin grade dabei einen Vokabeltrainer zu coden, wobei die vokabeldateien im installationsverzeichniss gespeichert werden sollen. da ich den user nicht die dateinamen eingeben lassen will muss das programm sie selber durchnummerieren.
im verzeichnis soll es nacher so aussehen:

Code:
vocabeln1.voc
vocabeln2.voc
...
vocabeln63.voc
...

dh müsste das programm
*die dateien zählen
*diese Zahl in den dateinamen schreiben.

Nun zur Frage:
Wie realisiere ich diese beide Punkte? habe auf google nix gefunden.
Wäre für Hilfe und Ansätze dankbar!

mfg
bad_alloc

EDIT: Sprache ist C++
 
Da du leider nicht erwähnt hast, auf welche Programmiersprache du dich beziehst, kann ich dir leider keine genaue Antwort geben, aber es gibt der Ansatz sollte unter jeder Programmiersprache zu verwirklichen sein:

1. Entweder die Programmiersprache hat wie PHP eine Funktion wie z.B. file_exists(), die direkt testet, ob die datei vorhanden ist, oder du versuchst einfach die Datei zu öffnen und schaust dir an, obs erfolgreich war. Unter C++ einfach schauen, ob ifstream::open() 0 zurückgibt (wenn ja, gabs nen fehler beim Öffnen)

2. Um das Ganze so zu machen, wie dus beschrieben hast, testest du einfach in einer Schleife mit der in 1. beschriebenen Methode die dateien durch und sobald eines nicht geöffnet werden konnte, weißt du, dass dieser Dateiname noch verfügbar ist. Ab diesem Dateinamen kannst du dann weitere Datensätze speichern.
Du musst allerdings vor jedem Speichern noch einmal prüfen, ob die Datei noch nicht vorhanden ist, denn wenn z.B. die Dateien 1 bis 5 und 7 bis 9 vorhanden sind, und dein Programm bei 6 anfängt zu speichern, werden 7 bis 9 überschrieben.

edit: da du in deiner Signatur auf cplusplus.de verweist, nehme ich mal an, dass deine Programmiersprache C++ ist ;)
 
@heinzlotto: gut recherchiert, sprache ist wirklich c++ ;) . Ich war etwas gehetzt daher hab ich das vergessen.

Da das programm die dateien verwaltet nehme ich an, dass es da keine fehler geben wird.
Aber gibt es keine funktion die so etwas sicher realisiert? (arbeite unter VS 2008 express)
 
@benediktibk: passiert mir öfters. aber die lösung ist gefunden:

Code:
#include <iostream>
#include <string>
#include <sstream>

using namespace std;

int main()
{
    cout << "Int 2 String" << endl;
    
    int i = 63;
    cout << "Int: " << i << endl; //inteager ausgeben
    
    stringstream sstr;              //stringstream & string machen
    string s;
    
    sstr << i;                //int in den sream
    
    s = sstr.str();         //stream zu std::string
    
    cout << "String: " << s << endl;      //ausgabe und erfolg ;)
    
    system("PAUSE");         //schlechter stil
    return 0;
}

nochmal danke an alle die sich die zeit genommen haben :)
 
Zurück
Oben