Umbennen einer Datei falls bereits eine Datei mit diesem Namen besteht.
Hallo zusammen,
ich überlege mir schon seit ein paar Stunden um die Umbenennung meiner erzeugter Dateien falls diese Dateinamen schon vorhanden sind.
Ich habe ein Programm geschrieben welches Matrizen erzeugt und per fopen und fprintf in eine Datei schreibt, funktioniert alles wunderbar.
Momentan: Bei jedem Aufruf wird eine Datei erzeugt mit dem Namen "matrix1" beim nächsten Aufruf würde die Datei mit dem Namen "matrix1" überschrieben werden.
Ziel:Bei jedem Aufruf soll eine neue Datei erstellt werden und der Dateiname fortlaufend sein. D.h nun dass beim 2. Aufruf die Datei auf "matrix2" beim 3. Aufruf "matrix3" umbenannt werden soll u.s.w Hier mal mein Codeabschnitt wo es um das schreiben in eine Datei geht:
Danke im Vorraus!
greeze
ich überlege mir schon seit ein paar Stunden um die Umbenennung meiner erzeugter Dateien falls diese Dateinamen schon vorhanden sind.
Ich habe ein Programm geschrieben welches Matrizen erzeugt und per fopen und fprintf in eine Datei schreibt, funktioniert alles wunderbar.
Momentan: Bei jedem Aufruf wird eine Datei erzeugt mit dem Namen "matrix1" beim nächsten Aufruf würde die Datei mit dem Namen "matrix1" überschrieben werden.
Ziel:Bei jedem Aufruf soll eine neue Datei erstellt werden und der Dateiname fortlaufend sein. D.h nun dass beim 2. Aufruf die Datei auf "matrix2" beim 3. Aufruf "matrix3" umbenannt werden soll u.s.w Hier mal mein Codeabschnitt wo es um das schreiben in eine Datei geht:
/* open 'matrix_1' file */
f = fopen ("matrix_1", "w");
if (f == NULL)
{
printf("\nDatei konnte nicht gefunden werden!\n");
exit(1);
}
printf("Matrix wird erzeugt und in die Datei matrix_1 geschrieben.\n");
/* create matrix with random generated numbers */
for( i = 0; i < rows; i++)
{
for(j = 0; j < cols; j++)
{
/* Erzeugung von Zufallszahlen und in num gespeichert */
printf("%.2f ", num);
fprintf(f,"%.2f ", num);
}
printf("\n");
fprintf(f,"\n");
}
fclose(f);
Danke im Vorraus!
greeze
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 10.05.2012 um 12:04:47 Uhr
Umbennen einer Datei falls bereits eine Datei mit diesem Namen besteht.
Set /a rgc+=1#820
Content-ID: 184775
Url: https://administrator.de/contentid/184775
Ausgedruckt am: 22.11.2024 um 08:11 Uhr
1 Kommentar
Hallo,
Du kannst folgendermaßen vorgehen,
1) erzeuge eine Variable mnumber (Nummer der Matrix) und
2) generiere daraus den Namen der Matrix, also mnumber = 1, dann wird mname = Matrix_1
3) prüfe ob die Datei besteht, und das in einer Schleife
Du brauchst also eine Funktion filename, die aus der Zahl und dem Wort "Matrix" den Dateinamen generiert und Du musst herausfinden, wie Du diese Variable korrekt an fopen übergibst.
Markus
Du kannst folgendermaßen vorgehen,
1) erzeuge eine Variable mnumber (Nummer der Matrix) und
2) generiere daraus den Namen der Matrix, also mnumber = 1, dann wird mname = Matrix_1
3) prüfe ob die Datei besteht, und das in einer Schleife
int mnumber = 1; /* die Nummer 1 */
mname = filename("Matrix", mnumber) ; /* der Dateiname mit der Nummer 1 */
while (fopen(mname, "r")) { /* öffne die Datei zum lesen, wenn sie sich öffnen lässt, dann existiert sie bereits */
fclose mname; /* schließe die Datei wieder */
mname = filename("Matrix", mnumber++) ; /* und generiere den Dateinamen für die inkrementierte Zahl mnumber */
}
fopen(mname "w"); /* der zuletzt in der Schleife erzeuge Dateiname existiert noch nicht, also öffnen zum schreiben */
Markus