Ищу порогу что бы распределяла номера. У меня есть база 9* 134265636 234645645 345454534 443523345 532353455 621341234 нужно что бы после обработки уины записывались в отдельный файл Которые начинаются с 1 в первый файл Которые начинаются с 2 в второй файл Которые начинаются с 3 в третий файл Которые начинаются с 4 в четвертый файл Которые начинаются с 5 в пятый файл Которые начинаются с 6 в шестой файл Кто что подскажет?
Школьных знаний программирования мне хватило, чтобы за 2 минуты написать на СИ сепаратор: Исходник: Code: #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> #include <string.h> int read (FILE* source) { char word[1024]="", str[1024]; if (!fgets(str, 1023, source)) return 0; if (str[0]=='1') { FILE* file = fopen ("1.txt", "a"); fputs (str, file); fclose (file); } if (str[0]=='2') { FILE* file = fopen ("2.txt", "a"); fputs (str, file); fclose (file); } if (str[0]=='3') { FILE* file = fopen ("3.txt", "a"); fputs (str, file); fclose (file); } if (str[0]=='4') { FILE* file = fopen ("4.txt", "a"); fputs (str, file); fclose (file); } if (str[0]=='5') { FILE* file = fopen ("5.txt", "a"); fputs (str, file); fclose (file); } if (str[0]=='6') { FILE* file = fopen ("6.txt", "a"); fputs (str, file); fclose (file); } return 1; } void main() { FILE* source = fopen ("source.txt", "r"); while (read (source)); fclose (source); } Файл расфасовывает данные из файла source.txt в 1.txt, 2.txt, 3.txt, 4.txt, 5.txt, 6.txt. Разумеется все файлы должны быть в одной папке. Скачать
спасибо alkos все закинул в одну папку обозвал файл source запустил твою порогу но не хрена не происходит(
Только что затестил у себя, всё норм работает. В сурс-файле перед уинами никаких символов или пробелов не стоит?
нет нестоит. Как я понял она просто очень долго будет обрабатывать 3 700 000 номеров я подождал 10 мин обработались с 1 и то не все(
вот вариант на ЦЭбезплюсов: PHP: #include <stdio.h> int main() { char buf[256]={0}; FILE *f_in = fopen("in.txt", "r"), *f_out[10]; for(buf[0] = 48; buf[0] < 58; ++buf[0]) f_out[buf[0] - 48] = fopen(buf, "a"); while(fgets(buf, 255, f_in)) fputs (buf, f_out[buf[0] - 48]); for(buf[0] = 0; buf[0] < 10; ++buf[0]) fclose(f_out[buf[0]]); return 0; } за 10 секунд 16млн строк. upd: для тех, кто не умеет пользоваться компилятором - proga.exe
Вот это действительно круто)Давно это искал!!! Тока почему то файл не txt получается как это поправить?
Так и было задумано. Если нужны файлы txt, создай в папке с программой файл "proga.bat", в нем напиши: PHP: proga.exe ren *. *.txt и запускай его