|
|
|
| Есть текстовый файлик размером в 1,5 Гб , который нужно распарсить и залить в БД
при обработку всего файла оперативка не позволяет :)
есть идея делать поблочто (допустим по 10 000 строк), передавая начальное смещение в УРЛе
ну и собственно вопрос... как "пропустить" первые 10 000 строк с начала файла? | |
|
|
|
|
|
|
|
для: michail1982
(12.06.2009 в 11:17)
| | никак. Позиционироваться в файле Вы можете только побайтно.
Правда, в пределах первых двух гигабайт Вы можете получить текущую позицию файла и воспользоваться ей при выполнении следующего запроса. | |
|
|
|
|
|
|
|
для: Trianon
(12.06.2009 в 11:27)
| | ну можно например тупо читать построчно "в пустоту" если файл рядышком
хотя при таком раскладе это ненужно) | |
|
|
|
|
|
|
|
для: Valick
(12.06.2009 в 11:30)
| | Это не называется пропустить. Это называется прочитать. | |
|
|
|
|
|
|
|
для: Trianon
(12.06.2009 в 11:27)
| | Спасибо...
я подумал о
<?php
$sm = intval($_GET['sm']);
$fl = fopen('file.txt','r');
$row = 0;
while($row<$sm){
fgets($fl);
$row++;
}
//уже работаем
?>
|
но думал есть какое-то более удачное решение | |
|
|
|
|
|
|
|
для: michail1982
(12.06.2009 в 11:17)
| | код парсера и файлик находятся на разных серверах? | |
|
|
|
|
|
|
|
для: Valick
(12.06.2009 в 11:28)
| | всё рядом на локалхосте | |
|
|
|
|
|
|
|
для: MIchail1982
(12.06.2009 в 11:34)
| | тогда зачем этот "бубен"? почему у Вас не получается обработать файл построчно целиком? | |
|
|
|
|
|
|
|
для: Valick
(12.06.2009 в 11:40)
| | >тогда зачем этот "бубен"? почему у Вас не получается обработать файл построчно целиком?
скрипт выедает всю оперативку там на 10000 строк 15000 запросов к бд, парсинг, конверт. кодировки | |
|
|
|
|
|
|
|
для: MIchail1982
(12.06.2009 в 11:42)
| | хм.. не знаю что Вам мешает читать, обрабатывать, конвертить и заносить в базу построчно...
мгоу предложить два варианта.. 1) увеличить оперативку 2) разбить файл на несколько меньших по объёму файлов и обрабатывать по очереди. | |
|
|
|
|
|
|
|
для: Valick
(12.06.2009 в 11:55)
| | Спасибо | |
|
|
|