Datei mit Variablen Umbenennen
-
Hallo Jungs,
ich arbeit grad an nem Programm um Dateien umzubenennen. Solang die Namen fix sind ist das ja alles kein Problem.
Schaut bei mir so aus:
int result;
char oldname[] ="test.txt";
char newname[] ="newname.txt";
result= rename( oldname , newname );
if ( result == 0 )
puts ( "Erfolgreich umbenannt" );
else
perror( "Fehler beim Umbenennen" );Problem ist nur, dass das ganze Variabel sein soll.
Meine Dateien die ich umbenennen will schauen so aus "RTD_XXX"
Das "RTD_" ist immer fix für "XXX" werden Zahlen eingesetzt.Kleines Beispiel:
Ich geb ihm über ne Eingabe 135 und 136 vor....heißt er soll Dateien mit RTD_135 und RTD_136 z.B. in Bild_1 und Bild_2 umbenennen.Hat jemand ne Idee dazu ?
-
Hitpics schrieb:
Hat jemand ne Idee dazu ?
Ja, den Code der nicht funktioniert posten wäre ein Anfang.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum C (C89 und C99) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Namen einlesen, Funktion aufrufen? Werde konkreter! Wo genau hast du Schwierigkeiten?
Außerdem sieht das sehr nach C aus, daher hab ich's mal verschoben.
-
int result;
int zahl;
cin >> zahl;
char oldname[255];
sprintf(oldname, "%d", zahl); // Hab hier Probleme das ganze mit nem Text und der Dateiendung zu verbinden
char newname[] ="newname.txt";
result= rename( oldname , newname );
if ( result == 0 )
puts ( "Erfolgreich umbenannt" );
else
perror( "Fehler beim Umbenennen" );}
return 0;
Außerdem weiß ich nicht obs dafür nicht ne elegantere Variante gibt ! Hab erst vor 3 Wochen mitm programmieren angefangen!
-
Hitpics schrieb:
Außerdem weiß ich nicht obs dafür nicht ne elegantere Variante gibt !
Ja, gibt es.
Hitpics schrieb:
Hab erst vor 3 Wochen mitm programmieren angefangen!
Schön, dann kannst du dir merken, dass es sehr sinnvoll ist, sich VOR Schreiben eines Programms für (in diesem Fall) C oder C++ zu entscheiden. Du benutzt beides.
int i,j; for(i=135,j=1;i<=136;++i,++j) { char n1[FILENAME_MAX],n2[FILENAME_MAX]; sprintf(n1,"RTD_%d",i); sprintf(n2,"Bild_%d",j); if( !rename(n1,n2) ) puts(n1); else puts("Fehler"); }
-
Ich sag auf jeden Fall schon mal Danke! Leider hab ich noch so meine Probleme mit der Unterscheidung. Muss ich mir noch genauer anschauen.
-
Das Einzige was fehlt ist die Dateiendung hinter dem Int-Wert (.jpg)
-
Hitpics schrieb:
Das Einzige was fehlt ist die Dateiendung hinter dem Int-Wert (.jpg)
Davon hast du bis jetzt nichts gesagt.
Schau mal wie das RTD da drin steht.sprintf(n1,"RTD_%d.jpg",i);