Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Извлечь данные из файла по номеру строки

Сообщения:  [1-10]   [11-14] 

 
 автор: V2D   (20.11.2008 в 15:00)   письмо автору
 
   для: Valick   (19.11.2008 в 23:53)
 

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

  Ответить  
 
 автор: Trianon   (20.11.2008 в 00:59)   письмо автору
 
   для: Valick   (19.11.2008 в 21:58)
 

Вы сказали "покажите Ваш код - поправим если что"
Я гляжу (в этом разделе как минимум) на задачу совершенно конкретно.
Есть файл. Со строками текста. Достаточно длинный, чтобы даже и не думать ни об оперативной памяти. Ни о том, чтоб его содержимое куда-то, как-то, где-то копировать.
Он уже есть. Им пользуются. Разбить/переделать файл никто не позволит.
Впрочем, не помешают создать рядышком еще один - покороче на порядок-другой.
Вот в таком акцепте.

При размере файла до 2 Гб задача относительно проста.
За пределами (в 32bit php) наступает вешалка.

  Ответить  
 
 автор: Valick   (19.11.2008 в 23:53)   письмо автору
 
   для: V2D   (19.11.2008 в 23:45)
 

бедная оперативная память)))
вы хотели сказать минус один?)) хотя неважно этот вариант в любом случае не для меня))

  Ответить  
 
 автор: V2D   (19.11.2008 в 23:45)   письмо автору
 
   для: Valick   (19.11.2008 в 21:58)
 

<?php
$file
=file("file.dat");
echo 
$file['123456']; //номер строки плюс один т.к. массив начинается с нуля
?>

  Ответить  
 
 автор: Valick   (19.11.2008 в 21:58)   письмо автору
 
   для: Trianon   (19.11.2008 в 20:43)
 

я вас не понимаю... я посоветовал человеку отказаться от файлов в пользу БД раз уж так важна скорость, на что вы мне сказали, "что всё хорошо, но как быть с файлами более 2Гб", а потом спрашиваете "при чём тут базы"...

Да кстати как вариант можно разбить этот файл на несколько меньших по объёму фйлов имена которых будут содержать номер начальной строки например 0, 100000, 200000 и тд.

  Ответить  
 
 автор: Trianon   (19.11.2008 в 20:43)   письмо автору
 
   для: Valick   (19.11.2008 в 16:32)
 

при чем тут базы?
Я о php ( точнее о файловых функциях php 32-битовой платформы.)

  Ответить  
 
 автор: Valick   (19.11.2008 в 16:32)   письмо автору
 
   для: Trianon   (19.11.2008 в 15:16)
 

У всех баз данных такая проблема при работе с файлами более 2Гб?

  Ответить  
 
 автор: Trianon   (19.11.2008 в 15:16)   письмо автору
 
   для: Valick   (19.11.2008 в 13:37)
 

Всё бы ничего, но что делать с файлами длиннее 2 Гб?

  Ответить  
 
 автор: Valick   (19.11.2008 в 13:37)   письмо автору
 
   для: SoloNifer   (19.11.2008 в 13:06)
 

Покажите ваш код... поправим если что.
А вообще чтобы не изобретать велосипед, нужно ездить на мотоцикле... т.е. использовать базу данных.

  Ответить  
 
 автор: SoloNifer   (19.11.2008 в 13:06)   письмо автору
 
   для: SoloNifer   (12.11.2008 в 13:24)
 

Народ, у кого нибудь есть решение без фиксированной длинны строк?

  Ответить  

Сообщения:  [1-10]   [11-14] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования