Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge

Automatische Ordnererstellung mit C

gelöscht_146282 / 6 Antworten / Flachansicht Nickles

Hallo


Da ich viel auf Zeiteinsparung lege würde ich gerne Wissen wie ich mit einen kleinen C Prog, Ordner mit Zahlen als Namen erstellen kann?


for(i=start; i<=start+anzahl; i++)
 {
  system("md i");
 }


Die Abfragen davor habe ich weggelassen, ebenso die include Anweisung(en).


Start stellt den Wert dar von wo er Anfangen soll zu Zählen z.B. 100 und Anzahl ist die Inkrementierungsweite z.B. 60. Es sollten am ende also 60 Ordner mit den Namen 100 bis 160 erscheinen. Bei mir gibt er aber nur i als Ordner aus und dann sagt er mir das weitere Ordner bereits vorhanden sind.


Wie aknn ich das Prob lösen?


Danke

bei Antwort benachrichtigen
martinx24 gelöscht_146282 „Automatische Ordnererstellung mit C“
Optionen

Hallo Ghost!
Hier mal meine Lösung: (funktioniert über eine Stapelverarbeitungsdatei)

//Nickles - Verzeichnisse mit Zahlennamen anlegen - Stand vom 22.10.2003

#include &ltstdio.h>
#include &ltstdlib.h>
#include &ltstring.h>
#include &lttime.h>

char dosstring1[256]=("mkdir C:\\"); //String mit dem Anfang des Dos-Befehls (hier ist auch der Pfad enthalten
//wo alle Verzeichnisse angelegt werden sollen
char dosstring2[256]=(" "); //String, der den umgewandelten Zahlenwert aufnimmt (=Ende des Dos-Befehls)
char kopie[256]=(" "); //String, der eine Arbeitskopie von eingabe erhält
char pfadbat[]=("C:\\Temp.bat"); //Pfad und Name der temporären *.bat - Datei
char systemstring[]=("start "); //für das Starten der *.bat-Datei über system() erforderlich


void sleep(int zeit); //Wartefunktion


int main(void)
{

FILE *bat; //Stream für *.bat-Datei

if ((bat=fopen(pfadbat,"w"))==NULL) //Anlegen der *.bat-Datei zum Schreiben
{
fprintf(stderr,"Fehler beim Anlegen der Bat-Datei!");
fprintf(stderr,"\n******************************* AUF WIEDERSEHEN! *******************************\n\n");
sleep(3);
exit(-1);
}

for (int i=1; i {
strcpy(kopie,dosstring1); //eingabe in kopie kopieren
sprintf(dosstring2, "%d", i); //Zahl in string umwandeln und in dosstring2 ablegen
strcat(kopie,dosstring2); //dosstring2 an kopie anhängen
fprintf(bat,"%s\n",kopie); //mkdir c:\\X in die *.bat-Datei schreiben (X ist der Verzeichnisname)
printf("%s\n",kopie); //zusätzliche Ausgabe am Bildschirm
//sleep(1); //evtl. Pause?
}
fprintf(bat,"del %s",pfadbat);

if(fclose(bat)==-1) //*.bat-Datei schließen
{
fprintf(stderr,"\nFehler beim Schliessen der Bat-Datei!");
fprintf(stderr,"\n******************************* AUF WIEDERSEHEN! *******************************\n\n");
sleep(3);
exit(-1);
}

strcat(systemstring,pfadbat);
system(systemstring);

return 0;
}



void sleep(int zeit) //Wartefunktion
{
clock_t goal;
printf("\n");

goal=(zeit*CLOCKS_PER_SEC)+clock();

while(goal>clock())
;
}

Hoffe der Code wird einigermaßen fehlerfrei gepostet (hab immer wieder Probleme zwecks HTML-Format) - falls nicht, kannst Du mir noch Deine E-Mail-Adresse nennen, dann kann ich ihn Dir nochmal unverfälscht zukommen lassen...

Gruß Martin!

bei Antwort benachrichtigen