Перемешивание строк в файле

[Удален]
862

День добрый!

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

Нашел реализацию на php, но она хороша, когда в файле счетное количество строк...когда их 50000+ - уже не очень хорошо, мягко говоря, мешает...

P.S. Вообще, идеальным решением проблемы был бы скрипт, который позволяет "дергать" произвольные строки текстового файла в отдельный файл до определенного количества.

Поблагодарю баксом-полуторами за нахождение/реализацию подобного скрипта :)

P.P.S. Язык программирования не принципиален :) Важно, чтобы это было готовым решением.

[Удален]
#1

function random_nlines($from,$to,$needrows)
{
$handle = fopen($from, "r");
$offset = 0;
$rowscount = array();

while (!feof($handle)) {
$buffer = fgets($handle, 4096);

$len = strlen($buffer);
$rowscount[] = array($offset,$len);

$offset+=$len;
}

$rowscountc = count($rowscount);
$rows = min($rowscountc,$needrows);
$thandle = fopen($to, "w");

for($i = 0;$i < $rows;$i++)
{
$row = $rowscount[rand(0,$rowscountc)];
fseek($handle,$row[0]);
fwrite($thandle,fread($handle,$row[1]));
}
fclose($handle);
fclose($thandle);
}

должна мешать ну ОООЧЕНЬ быстро. падение скорости - поиск ограничителей файла. чем больше файл тем меньше скорость соответственно. на 50 000 файле у меня на буке при поиске 10 000 строк занимает 0.2 секунды.

Z214962204619 сюда можно слать благодарности.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий