Разбить txt файл на части (Страница 1) / Программирование / Форум StopLinux

Объявление

Kwork.ru - услуги фрилансеров от 500 руб.

#1 05-06-11 23:12:48

Luca
Участник
Зарегистрирован: 03-09-09
Сообщений: 1,413
Windows 7Firefox 4.0.1

Разбить txt файл на части

Господа, есть заморочка. Есть txt файл. Пусть будет в 50 строк
1 дерево
2 дорога
...
50 корова

нужно разбить его на 5 равных частей при этом не пользуясь мышкой и клавиатурой.
на выходе должно быть 5 файлов:
text1 text2 .. text5
в каждом по 10 строк.

Решение в гугле нашел, но может кто не гугля предложит интересный вариант.

Неактивен

#2 05-06-11 23:23:34

SemyonKozakov
Журнашлюшка :)
Из Саратов
Зарегистрирован: 28-11-09
Сообщений: 4,109
Сайт
Windows 7Chrome 11.0.696.71

Re: Разбить txt файл на части

Сказать честно? Янихуянепонял.пнг
1) Какое это имеет отношение к программированию?
2) Что, если количество строк не делится нацело на 5?


https://nolinux.w2c.ru - море баттхерта и деаонимизации

Неактивен

#3 05-06-11 23:31:42

Lecarde
Участник
Зарегистрирован: 18-08-10
Сообщений: 318
Windows XPOpera 11.11

Re: Разбить txt файл на части

при этом не пользуясь мышкой и клавиатурой.

Силой мысли штоле? Или геймпадом? По таймеру? Как компьютер поймёт, какие файлы нужно делить и когда? smile
Считывай строки, дели количество строк на 5, записывай нужные строки в нужные файлы. Или чего?

Неактивен

#4 06-06-11 00:07:04

Babusha
Нехристь
Зарегистрирован: 12-03-10
Сообщений: 2,160
Windows 7Internet Explorer 9.0

Re: Разбить txt файл на части

https://pastebin.com/JiWGQMy8

Руби всегда придет на помощь.

Неактивен

#5 06-06-11 00:53:41

Дестер
Капитан
Зарегистрирован: 09-11-10
Сообщений: 705
Сайт
Windows 7Chrome 12.0.725.0

Re: Разбить txt файл на части

<?php
    $file = file("./file1.txt");    
    $count1 = ceil(count($file)/5);
    $file = array_chunk($file,$count1);    
    foreach($file as $array){
        $array[$count1-1] = str_replace("\r\n","",$array[$count1-1]);
        $string = implode("",$array);
        $file2 = fopen("text".++$numfiles, "w");fwrite($file2,$string);fclose($file2);
    }
?>

А я придумал, как. Нужно просто воспользоваться планшетником с рукописным вводом. Стилус - это не мышка.

Неактивен

#6 06-06-11 01:01:50

Lecarde
Участник
Зарегистрирован: 18-08-10
Сообщений: 318
Windows XPOpera 11.11

Re: Разбить txt файл на части

Я требую реализации управления голосом! Чего в микрофон крикнуть, чтобы файлы поделились?

Неактивен

#7 06-06-11 01:03:25

Дестер
Капитан
Зарегистрирован: 09-11-10
Сообщений: 705
Сайт
Windows 7Chrome 12.0.725.0

Re: Разбить txt файл на части

Lecarde, а как ты кавычки введёшь? Азбукой Морзе (кстати, где он?) насвистывать предлагаешь?

Неактивен

#8 06-06-11 02:15:01

Babusha
Нехристь
Зарегистрирован: 12-03-10
Сообщений: 2,160
Windows 7Internet Explorer 9.0

Re: Разбить txt файл на части

Дестер пишет:

str_replace("\r\n","",$array[$count1-1]);

Дестер пишет:

fopen("text".++$numfiles, "w");fwrite($file2,$string);fclose($file2);

Какое убожище, не дай сОтОна на таком программировать.

Linups_Troolvalds пишет:

Я думаю, код на похапэруби через астрал тоже не вводится. Почему вы пристали именно ко мне? Какие-то проблемы? roll

Нет, просто Паша знает что руби -- божественен, на руби следует молиться, логотип руби следует распечатать и он должен висеть в рамочке, по 8 штук в каждой комнате, руби излечивает рак php головного мозга.

Неактивен

#9 06-06-11 07:46:09

Lord_Evil
Master Of Darkness
Из Deepest Pits Of Hell
Зарегистрирован: 06-06-10
Сообщений: 1,887
Сайт
Windows XPOpera 9.50

Re: Разбить txt файл на части

Разгоняежсо и ебошишь головой монитор. Текст будет разбит вместе с ним big_smile


Интеллигент боится лишь одного — касаться темы зла и его корней, потому что справедливо полагает, что здесь его могут сразу выeбaть телеграфным столбом.©

Неактивен

#10 06-06-11 10:10:46

Дестер
Капитан
Зарегистрирован: 09-11-10
Сообщений: 705
Сайт
Windows 7Chrome 12.0.725.0

Re: Разбить txt файл на части

Babusha пишет:

Какое убожище, не дай сОтОна на таком программировать.

Зато это работает.  wink

Неактивен

#11 06-06-11 11:15:11

Luca
Участник
Зарегистрирован: 03-09-09
Сообщений: 1,413
Windows 7Firefox 4.0.1

Re: Разбить txt файл на части

Lecarde пишет:

Силой мысли штоле?

нет, имелось ввиду не топорное решение. Выделил 10 строк, скопировал, создал файл вставил.

Добавлено спустя 50 мин 17 с:
Если никто не возражает я удалю все сообщения не по теме. Тут разговор исключительно о написании алгоритмов и других красивых решениях. Буду дома попробую запаковать раром без сжатия, но с разбитием на тома, потом это дело попробую распаковать. Иересно что получится

Неактивен

#12 06-06-11 14:17:49

Дестер
Капитан
Зарегистрирован: 09-11-10
Сообщений: 705
Сайт
Windows 7Chrome 12.0.725.0

Re: Разбить txt файл на части

Linups_Troolvalds, в вашем решении нужно вручную вычислить количество строк в файле и поделить его на пять, да?

Неактивен

#13 06-06-11 14:46:24

Дестер
Капитан
Зарегистрирован: 09-11-10
Сообщений: 705
Сайт
Windows 7Chrome 12.0.725.0

Re: Разбить txt файл на части

А как это будет выглядеть одной командой?

Неактивен

#14 06-06-11 14:47:09

Lecarde
Участник
Зарегистрирован: 18-08-10
Сообщений: 318
Windows XPOpera 11.11

Re: Разбить txt файл на части

Luca пишет:

Буду дома попробую запаковать раром без сжатия, но с разбитием на тома, потом это дело попробую распаковать. Иересно что получится

Не взлетит.
Во-первых, у тебя получится, всё-таки, не совсем текстовики - в начале и в конце файлов добавится всякая лабуда.
Во-вторых, что важнее, разбиение на части будет по объёму, а не по строкам, т.е. может сработать только если у тебя в строках одинаковое количество букв (учитывая добавленные символы - не совсем одинаковое, но всё-таки строго определённое).

Неактивен

#15 06-06-11 15:47:31

Lord_Evil
Master Of Darkness
Из Deepest Pits Of Hell
Зарегистрирован: 06-06-10
Сообщений: 1,887
Сайт
Windows XPInternet Explorer 8.0

Re: Разбить txt файл на части

perl:

$i=0;
$n=0;
while(<STDIN>){
   if($n>4){
      $n=0;
      $i++;
   }
   $_=~s/\n//;
   `echo '$_' >>file$i.txt`;
   $n++;
}

Интеллигент боится лишь одного — касаться темы зла и его корней, потому что справедливо полагает, что здесь его могут сразу выeбaть телеграфным столбом.©

Неактивен

#16 06-06-11 16:55:07

Lord_Evil
Master Of Darkness
Из Deepest Pits Of Hell
Зарегистрирован: 06-06-10
Сообщений: 1,887
Сайт
Windows XPInternet Explorer 8.0

Re: Разбить txt файл на части

Linups_Troolvalds, а. Ну да это тоже фигня. А вот что делать с остатоком? Давай предположим, что если у нас остается лишних <5и строк, то мы их записываем в последний файл. Тогда решить можно вот так:

@data=<STDIN>;
$block=int((scalar @data)/5);
for($i=0;$i<5;$i++){
open F,">file$i.txt";
print F "@data[($i*$block)..($i*$block+$block-1)]";
close F;
}
$diff=(((scalar @data)/5)*10-$block*10)/2;
if($diff){
open F,">>file".($i-1).".txt";
   print F "@data[-$diff..-1]";
close F;
}

Добавлено спустя 03 мин 17 с:
З.Ы.
заморочки с умноженим на 10 из-за того, что иначе перл рисует какой-то странный хвост значениям..

Linups_Troolvalds, проверь мой скрипт на скорость.


Интеллигент боится лишь одного — касаться темы зла и его корней, потому что справедливо полагает, что здесь его могут сразу выeбaть телеграфным столбом.©

Неактивен

Kwork.ru - услуги фрилансеров от 500 руб.
Мой VPS с 2016 года !
✅ Виртуальные от 300 ₽/месяц, RAM 1-10GB, DISK 20-360 GB;
✅ Выделенные от 3000 ₽/месяц. RAM 4-64GB, DISK до 4TB;
✅ Intel Xeon, SSD, XEN, iLO/KVM, Windows/Linux, Администрирование;
✅ Бесплатно Full Backup и Anti-DDoS.





Подвал форума

Под управлением FluxBB
Модифицировал Visman

Яндекс.Метрика