разбить большой(400м) файл на мелкие(5-7)

bratukxin

Новичок
разбить большой(400м) файл на мелкие(5-7)

доброго Господа вот моя проблема
Надо разбить большой файл 350 мегов на фаилы по 7 мегов
при этом в файле через каждые 4-8 строки стоит разделительная слово-метка
дак вот чтобы рзбитые файлы начинались и заканчивались этой меткой (что-то вроде массива, внутри этих меток данные)
это реально сделать? все это будет выполняться на серве
С уважением для всех, Андрей
 

HraKK

Мудак
Команда форума
реально. Только пхп тут не при чем. Делайте на С например.
 

Gas

может по одной?
я бы смотрел в сторону консольных утилиток, например, csplit
 

bratukxin

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

dimagolov

Новичок
bratukxin, открою секрет. не обязательно обрабатывать все 400м за один раз. можно это делать по частям и бить файл для этого не нужно.
 

WP

^_^
Пациент скорее мертв чем жив. Какая разница в одном файле или в нескольких? Можно fseek() делать.
 

bratukxin

Новичок
да я сам скрипт из-за его размера открытьне могу .пробовам открывать и как массив и простым способом
 

WP

^_^
При чем здесь скрипт? Открывай через fopen() и дерзай.
 

bratukxin

Новичок
да не открыть его через fopen() ни
file_get_contents("myfilename") ни$array = file("myfile");
400м а еще в нем нужно поиск , сортировку вести
хрен его знает можен я что не так пишу
 

dimagolov

Новичок
bratukxin, пойми наконец, что для того, чтобы обработать данные из файла не обязательно считывать его в память ВЕСЬ. даже не обязательно читать его весь построчно чтобы перейти к строке №567889908, достаточно при предидущем чтении строки №567889907 запомнить смещение ее конца и при следующем сеансе читать начиная с того смещения.

представь, что файл - это лента магнитофона. ты же можешь ее перемотать в любое место в середине? так вот, с файлом то же самое.

-~{}~ 30.05.08 11:44:

про поиск и сортировку...

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

[telepat mode]
тебе не файл нужен, а БД для хранения твоих данных
[/telepat mode]
 

bratukxin

Новичок
$fp = fopen('л.txt');
$data = fgets($fp, 4096);
fseek($fp, $a);<--- а как кусок то прочитать например с 1000стр
до 1500
не поиму :{
 

dimagolov

Новичок
начинаешь читать с начала, при окончании сессии обработки смотришь на текущую позицию и запоминаешь ее вместе с номером следующей необработанной строки, потом начинаешь с того же места.
 

Gas

может по одной?
WP
ту ключевое "не поиму :{"


bratukxin
если расскажешь задачу подробней, шансы получить подходящий ответ значительно возрастут.
 

Kelkos

Сам себе программер
Судя по всему человек не впетривает про fseek и совсем далёк от MySQL.

учиццо, учиццо и ещё два раза по столько же!
 

bratukxin

Новичок
Всем доброго !!!!
Уважаемые профи да я не ас в php ну кое что делать умею
короче мне нужно из одного файла данными типа <url>http://***/context/detail/id/2767949/?from=partner</url>
<price>603</price><currencyId>RUR</currencyId><categoryId>1083115</categoryId> (xml) переписать в другои типа 131959:::http://**/context/detail/id/131959/?from=brat:::93:::RUR:::1071714:::http://www. (txt)
ну не хочу ч изучать MySQL ну не стоит у маня на него . Так то я написал скрипт
и он работает но только с маленькими файлами примерно до 5-7м
а мне нужно 300 м. могу выслать на мыло что я хочу подробнее со скриптом и маленькой базой (просто файл у себя на машине увеличите путем копированием и вставки текста )
ЕСЛИ КТО ВОЗМЕТЬСЯ скри. написать, могу подкинуть 300 Яденег на пиво
 

bratukxin

Новичок
ну вы даете я же не магазин заказываю. там скрипт то 10 строчек ну если не кому не надо 300 яденег на ПЫВО завтра размещу на досках обьявлении
да и пишу то я для себя для общего развития
 

Фанат

oncle terrible
Команда форума
bratukxin
тебе уже написали, 10 раз, как надо делать.
разуй глаза и сделай уже наконец
 
Сверху