[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вывод строки из файла
Гость_шаман
Добрый вечер всем. Подскажите как реализовать вывод определенной строки из текстового файла в 500 000 строк. file() неподходит.



Спустя 2 минуты, 26 секунд (24.02.2011 - 20:49) sergeiss написал(а):
Считывай по одной строке функцией fgets(), анализируй "подходящесть" и выводи, когда найдешь.

Или у тебя есть другие варианты.

Спустя 15 минут, 31 секунда (24.02.2011 - 21:05) Гость_шаман написал(а):
почитал про fgets. там вроде как нет параметра какую строку считывать.только длину строки в байтах.

Спустя 30 минут, 13 секунд (24.02.2011 - 21:35) sergeiss написал(а):
Гость_шаман - да, такого параметра нету. Придется последовательно считывать все строки и выбирать нужные.
Преимущество перед file() в том, что файл не грузится в память весь целиком, т.е. не тратятся ресурсы. Для больших файлов это, скорее, плюс.

И учти, что задаётся максимальная длина строки. Если будет встречен знак конца строки до того, как считается указанное число байт, то тогда чтение остановится. И это правильно smile.gif

Спустя 1 час, 16 минут, 3 секунды (24.02.2011 - 22:51) Гость_шаман написал(а):
я наверное непонятно описал вопрос.мне ненужно ничего искать в строках.мне нужно просто вывести N-ю строку (например 257-ю).несовсем понял про fgets. Он считывает строку длинной N байт. А какую строку? У меня их 500 000. Как же ему сказать какую строку считывать если у него нет такого параметра???

Спустя 28 минут, 23 секунды (24.02.2011 - 23:19) Evilsoul написал(а):
Гость_шаман
Тебе же написали
Цитата
Придется последовательно считывать все строки и выбирать нужные.

циклом это делается

Спустя 33 минуты, 34 секунды (24.02.2011 - 23:53) sergeiss написал(а):
Цитата (Гость_шаман @ 24.02.2011 - 23:51)
Он считывает строку длинной N байт.

Только не ровно N байт, а "не более N-1 байт". Эта функция, кстати, полностью идентична функции с таким же именем в языке Си.

Спустя 7 часов, 41 минута, 59 секунд (25.02.2011 - 07:35) Гость_шаман написал(а):
пожалуйста покажите простейший пример.или дайте ссылку.

Спустя 7 часов, 1 минута, 35 секунд (25.02.2011 - 14:37) sergeiss написал(а):
Простейший пример, говоришь... Держи, только тут без анализа проблем открытия или чтения.
Вот пример из хэлпа:
$handle = @fopen("/tmp/inputfile.txt", "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);
}

А ты адаптируй под свои нужды.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.