textdateifunktion
-
suche eine funktion die konstrollier ob eine textdatei namens a existiert... wenn ja dann soll er in b schreiben. beim nächsten start dann in eine jeweils immer neue datei so das keine überschrieben wird...
könnte mir da mal jemand eine beispielfunktion zeigen?
-
Hier mal ein Beispiel fürs einlesen, sollte aber leicht umzuprogrammieren sein fürs schreiben. Das ganze fängt bei der Datei 0.txt an und sucht dann nach 1.txt dann nach 2.txt und so weiter... SObald eine Datei nicht existiert wird aufgehört zu suchen.
const int EndeEinlesen = 100; for(int DateiNr = 0;DateiNr < EndeEinlesen;DateiNr++) { char DateiName[] = "xxx.txt"; sprintf(DateiName,"%i.txt",DateiNr); std::ifstream fin(DateiName); if(!fin) { DateiNr = EndeEinlesen; } else { // was mit den daten machen... } }mfg.
-
Ich habe keine Ahnung wie ich den Code erweitern soll (für das Schreiben einer neuen datei versteht sich)...
-
Dann denk mal darüber nach
(du kannst z.B. im "if(!fin)..." Zweig eine neue Datei mit dem aktuellen Dateinamen anlegen und dort deine Werte eintragen).(kurze Erklärung der Schleife: Das Programm prüft von 0 bis 99 durch, ob eine Datei 'nr'.txt exisitert - wenn ja, wird diese gelesen, ansonsten die Schleife abgebrochen)
@joomoo: Es wäre vielleicht etwas eleganter, die Schleife per "break" zu verlassen

-
man kann auch eine funktion schreiben, die prüft ob eine datei existiert:
#include<fstream> bool fexists (const char *fname) { ifstream f(fname); return (void*)f; }wenn fexists() false zurückgibt muß nicht unbedingt heißen, daß die datei nicht existiert. das öffnen zum lesen könnte auch aus anderen gründen fehlgeschlagen sein. aber für den hausgebrauch reichts.