Разбить текстовый файл на части

Статус
В этой теме нельзя размещать новые ответы.

frikandel

Новичок
Разбить текстовый файл на части

Доброго времени суток. Подскажите пожалуйста, вот пример скрипта который разбивает текстовый файл db.txt на файлы содержащие одну строку из этого файла. Как можно задать диапазон вставки строчек, допустим взять первый 1000 строчек и записать их, потом взять следующие 1000 строчек и так. далее???

PHP:
<?PHP
$f = 'db.txt';            // yназания файла базы
$fc=file($f);                // получаем содержимое
$fn=count($fc);                // считаем скока у нас строк есть

for($i=0; $i<=$fn; $i++)
{
  $f2 = 'db'.$i.'.txt';
  $fp=fopen($f2, 'w+');
  fwrite($fp, $fc[$i]);
  fclose($fp);
}
?>
 

frikandel

Новичок
С большими файлами неудобно работать и появляется необходимость разбить их на более мелкие.
 

phprus

Moderator
Команда форума
frikandel
man split
Это строку печатать в консоли любого *NIX.
 

frikandel

Новичок
С fgets к сожалению не понял. Написал при помощи двух циклов, скрипт задачу выполняет но как очень медленно . Может кто нибудь подскажет другой способ для решения этой задачи:
<?PHP
$f = 'db.txt'; // yназания файла базы
$fc=file($f); // получаем содержимое
$fn=count($fc); // считаем скока у нас строк есть
$quility = 1000;
$ceil = ceil($fn/$quility);


for($i=0; $i<=$ceil; $i++)
{

for($s=$i*$quility; $s<=$quility+$i*$quility; $s++)
{
$f2 = 'db'.$i.'.txt';
$fp=fopen($f2, 'a+');
fwrite($fp, $fc[$s]);
fclose($fp);
}

}
?>

phprus
Юниксом не пользуюсь, и мне нужен именно php скрипт для решения этой задачи.
 

Фанат

oncle terrible
Команда форума
дольше, чем тот который разбивает по одной строке?

-~{}~ 02.10.08 13:13:

и какая разница, сколько он выполняется?
ведь он только один раз и нужен?
 

frikandel

Новичок
Конечно дольше, разница есть, один раз нужен только для одного файла, и быстрота выполнения всегда предпочтительнее.
 

phprus

Moderator
Команда форума
frikandel
Юниксом не пользуюсь,
Это не проблема. split и под виндой есть. Только загуглить придется.

мне нужен именно php скрипт для решения этой задачи.
А не учебная ли это задачка или с собеседования какого-либо?
 

Farsh

~ on ~ high ~ wave ~
Я думаю, что задачи такого уровня слишком "круто" выкладывать на собеседовании ;)
P.s. хто потер мой пост ))
 

Фанат

oncle terrible
Команда форума
frikandel, что значит "конечно"? Скрипт выполняет ту же самую операцию (на первый взгляд), и не должен выполняться дольше.
Быстрота выполнения предпочтительнее там, где скрипт выполняется много раз. А где один - там разницы нет никакой
 

frikandel

Новичок
Я не совсем понимаю какая разница учебная задача или с собеседования или не то и не другое. Кого уровня эта задача мне тоже знать не интересно, я не так часто обращаюсь к php программированию. Зачем меня направлять к консоли, когда я привел код php скрипта и попросил помочь его отредактировать. Если она кажется кому нибудь такой простой почему бы не написать свой код, чем задавать кучу вопросов по поводу смысла этой задачи.
 

Фанат

oncle terrible
Команда форума
Благотворительность на этом форуме не практикуется
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху