Zahl größer 100 --> Fehler
-
Hallo Leute,
ich möchte mit einem Programm ein Code-File einlesen was aus 200k Codes besteht und das in einzelne 5k files splitten.
Das was ich nicht verstehe, wenn ich max großer als 100 mache gibt es ein Fehler beim ausführen und im endeffekt macht das programm halt auch nichts. wieso? eigentlich müsste dort ne 5000 rein...gruß
#include <string.h> #include <stdlib.h> #include <stdio.h> long main(void) { FILE *tosplit, *save; tosplit=fopen("split\\MB_ID_2143106_200000.txt", "r"); long count=0, all=0; long max=100; char code_line[35]; //zwischenspeicher der line //const char filename1[]="split\\MB_ID_"; //const char filename3[]="_5000.txt"; char filename2[7]; char filename[100]; do { if(count ==0) //zu beginn des 5k files { fscanf(tosplit, "%s",filename2); strcpy(filename,"split\\MB_ID_"); strcat(filename,filename2); strcat(filename,"_5000.txt"); save=fopen(filename, "w"); fprintf(save, "%s ", filename2); fscanf(tosplit, "%s",filename2); fprintf(save, "%s", filename2); // printf("%s\n", filename); count++; } else if(count==max) //wenn 5k file voll { save=fopen(filename, "a"); fgets(code_line , 35,tosplit ); fputs(code_line, save); count=0; all++; } else { save=fopen(filename, "a"); fgets(code_line, 35,tosplit); fputs(code_line, save); count++; } }while(all<5); getchar(); return 0; }
-
So ganz steige ich nicht durch, aber du hast nur einen Filenamen für die Quell- und die Zieldatei.
Du öffnest vor jedem Lesen die Datei neu und liest nur eine Zeile ein.
Ausserdem solltest du die Dateien auch mal mit fclose() schließen wenn du sie nicht mehr benötigst.
-
der fehler lag daran das ich alles jedes mal geöffnet hatte....
hab das jetz auf ein einziges mal reduziert und es macht keine probleme mehr.danke, daran hät ich jetz irgendwie nicht gezweifelt.