Господа, есть заморочка. Есть txt файл. Пусть будет в 50 строк
1 дерево
2 дорога
...
50 корова
нужно разбить его на 5 равных частей при этом не пользуясь мышкой и клавиатурой.
на выходе должно быть 5 файлов:
text1 text2 .. text5
в каждом по 10 строк.
Решение в гугле нашел, но может кто не гугля предложит интересный вариант.
Неактивен
Сказать честно? Янихуянепонял.пнг
1) Какое это имеет отношение к программированию?
2) Что, если количество строк не делится нацело на 5?
https://nolinux.w2c.ru - море баттхерта и деаонимизации
Неактивен
при этом не пользуясь мышкой и клавиатурой.
Силой мысли штоле? Или геймпадом? По таймеру? Как компьютер поймёт, какие файлы нужно делить и когда?
Считывай строки, дели количество строк на 5, записывай нужные строки в нужные файлы. Или чего?
Неактивен
Руби всегда придет на помощь.
Неактивен
<?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);
}
?>
А я придумал, как. Нужно просто воспользоваться планшетником с рукописным вводом. Стилус - это не мышка.
Неактивен
Я требую реализации управления голосом! Чего в микрофон крикнуть, чтобы файлы поделились?
Неактивен
str_replace("\r\n","",$array[$count1-1]);
fopen("text".++$numfiles, "w");fwrite($file2,$string);fclose($file2);
Какое убожище, не дай сОтОна на таком программировать.
Я думаю, код на похапэруби через астрал тоже не вводится. Почему вы пристали именно ко мне? Какие-то проблемы? roll
Нет, просто Паша знает что руби -- божественен, на руби следует молиться, логотип руби следует распечатать и он должен висеть в рамочке, по 8 штук в каждой комнате, руби излечивает рак php головного мозга.
Неактивен
Разгоняежсо и ебошишь головой монитор. Текст будет разбит вместе с ним
Интеллигент боится лишь одного — касаться темы зла и его корней, потому что справедливо полагает, что здесь его могут сразу выeбaть телеграфным столбом.©
Неактивен
Силой мысли штоле?
нет, имелось ввиду не топорное решение. Выделил 10 строк, скопировал, создал файл вставил.
Добавлено спустя 50 мин 17 с:
Если никто не возражает я удалю все сообщения не по теме. Тут разговор исключительно о написании алгоритмов и других красивых решениях. Буду дома попробую запаковать раром без сжатия, но с разбитием на тома, потом это дело попробую распаковать. Иересно что получится
Неактивен
Буду дома попробую запаковать раром без сжатия, но с разбитием на тома, потом это дело попробую распаковать. Иересно что получится
Не взлетит.
Во-первых, у тебя получится, всё-таки, не совсем текстовики - в начале и в конце файлов добавится всякая лабуда.
Во-вторых, что важнее, разбиение на части будет по объёму, а не по строкам, т.е. может сработать только если у тебя в строках одинаковое количество букв (учитывая добавленные символы - не совсем одинаковое, но всё-таки строго определённое).
Неактивен
perl:
$i=0;
$n=0;
while(<STDIN>){
if($n>4){
$n=0;
$i++;
}
$_=~s/\n//;
`echo '$_' >>file$i.txt`;
$n++;
}
Интеллигент боится лишь одного — касаться темы зла и его корней, потому что справедливо полагает, что здесь его могут сразу выeбaть телеграфным столбом.©
Неактивен
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ть телеграфным столбом.©
Неактивен