Veröffentlicht 23. Juli 200718 j Eigentlich steht die Antwort ja schon in diesem , aber irgendwie will das bei mir nicht ganz funktionieren, ich hoffe jemand sieht, wo es hakt. void har_dat(const char *har_daten) { int groesse; long zeit; char filewrite[NAME_LENGTH]; //Name & Pfad der Ausgabedatei char logfile[NAME_LENGTH]; char Jahr[4]; char Woche[5]; char path[32] = "H:\\Messdaten\\Auswertung\\Haribo"; char rohdaten[8] = "Rohdaten"; char verzeichnis[200]; char ext[6] = "Extern"; char fwrite[12];//Dateiname der Eingabedatei (Datum.Dateierweiterung) cout << "\nFolgende Datei wird verarbeitet : " << har_daten; // Berechnung der Größe des Datenfiles struct stat buf; stat(har_daten, &buf); groesse = buf.st_size; // Auslesen des Datums aus dem Datenfile const char* find = strrchr(har_daten, '\\'); strncpy(fwrite,find+1, 8); zeit = strtol(fwrite,0, 16); zeit = zeit - 86400; time_t timer; struct tm *tblock; tblock = localtime(&zeit); chdir(path); sprintf(Jahr,"%4d",tblock->tm_year+1900); chdir(Jahr); sprintf(Woche,"KW_%02d",tblock->tm_yday/7+1); chdir(Woche); mkdir(ext); chdir(Woche); // Zuweisung der Dateinamen für die zu schreibenden Files sprintf(filewrite,"HAR_%02d%02d%04d.txt ",tblock->tm_mday,tblock->tm_mon+1,tblock->tm_year+1900); sprintf(partner,"Extern\\HAR_e_%02d%02d%04d.txt ",tblock->tm_mday,tblock->tm_mon+1,tblock->tm_year+1900); sprintf(logfile,"HAR_log_%02d%02d%04d.txt ",tblock->tm_mday,tblock->tm_mon+1,tblock->tm_year+1900); ..... chdir(Woche); mkdir(rohdaten); chdir(rohdaten); getcwd(verzeichnis, sizeof verzeichnis); MoveFile(har_daten, verzeichnis, true); cout << "\nDie Datei " << har_daten << " wurde in das Verzeichnis " << verzeichnis << " verschoben.";[/PHP] Der Code ist Teil eines Unterprogramms, daß eine Datei ausliest, und Daten daraus speichert, und diese nach Datum ordnet. Nach Abschluß soll dann die Ursprungsdatei nach ähnlichem Muster geordnet werden.
24. Juli 200718 j Autor void har_dat(const char *har_daten) { char Jahr[4]; char Woche[5]; char path[32] = "H:\\Messdaten\\Auswertung\\Haribo"; char rohdaten[8] = "Rohdaten"; char verzeichnis[200]; char ext[6] = "Extern"; char fwrite[12];//Dateiname der Eingabedatei (Datum.Dateierweiterung) struct stat buf; // Auslesen des Datums aus dem Datenfile const char* find = strrchr(har_daten, '\\'); strncpy(fwrite,find+1, 8); zeit = strtol(fwrite,0, 16); zeit = zeit - 86400; time_t timer; struct tm *tblock; tblock = localtime(&zeit); chdir(path); sprintf(Jahr,"%4d",tblock->tm_year+1900); chdir(Jahr); sprintf(Woche,"KW_%02d",tblock->tm_yday/7+1); chdir(Woche); mkdir(ext); chdir(Woche); // Zuweisung der Dateinamen für die zu schreibenden Files sprintf(filewrite,"HAR_%02d%02d%04d.txt ",tblock->tm_mday,tblock->tm_mon+1,tblock->tm_year+1900); sprintf(partner,"Extern\\HAR_e_%02d%02d%04d.txt ",tblock->tm_mday,tblock->tm_mon+1,tblock->tm_year+1900); sprintf(logfile,"HAR_log_%02d%02d%04d.txt ",tblock->tm_mday,tblock->tm_mon+1,tblock->tm_year+1900); ..... chdir(Woche); mkdir(rohdaten); chdir(rohdaten); getcwd(verzeichnis, sizeof verzeichnis); MoveFile(har_daten, verzeichnis, true); cout << "\nDie Datei " << har_daten << " wurde in das Verzeichnis " << verzeichnis << " verschoben.";[/PHP] Das Problem ist: [color=red]MoveFile[/color] erfordert als Parameter einen Dateinamen inklusive Pfad. Die Variable [color=red]verzeichnis[/color] übergibt jedoch nur einen Dateipfad. Danke.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.