[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как Читать строки?
Wolfer

Вот код:
$file=fopen("file.txt","r"); 
$fr=fread($file,100);
print $fr;


Как читать файл не с первой строки,а допустим с 3?



Спустя 2 минуты, 56 секунд (3.09.2010 - 14:36) Basili4 написал(а):
fseek()

Спустя 2 минуты, 11 секунд (3.09.2010 - 14:38) waldicom написал(а):
Цитата (Basili4 @ 3.09.2010 - 13:36)
fseek()

и как с помощью только fseek() перейти на третью строку?

Спустя 4 минуты, 21 секунда (3.09.2010 - 14:42) Basili4 написал(а):
waldicom
Для начала найти fseek в гугле
затем подумать и раз готово.

Спустя 2 минуты, 32 секунды (3.09.2010 - 14:45) Гость_Michael написал(а):
лучше найти в гугле функцию file

Спустя 1 минута, 21 секунда (3.09.2010 - 14:46) linker написал(а):
smile.gif Прочитать две строки и начать выводить с третьей

Спустя 18 секунд (3.09.2010 - 14:46) waldicom написал(а):
Цитата (Basili4 @ 3.09.2010 - 13:42)
waldicom
Для начала найти fseek в гугле
затем подумать и раз готово.

Вместо вместо пустой болтовни напиш код.

Вот тебе даже исходник:

<?php
$filename = "test.txt"
$fd = fopen($filename, 'rb');
if($fd){
// твой выход: одна строка с fseek
$str=fread($fd,100);
echo $str;
}
?>

Содержимое файла "test.txt"
Цитата
строка 1
строка 2
строка 3
строка 4
строка 5

Спустя 1 минута, 15 секунд (3.09.2010 - 14:47) waldicom написал(а):
Цитата (linker @ 3.09.2010 - 13:46)
smile.gif Прочитать две строки и начать выводить с третьей

Э неее... Товарисч хочет не зная длину строки в файле с помощью одного только fseek утсановить указатель на начало тертьей строки...

Спустя 26 минут, 46 секунд (3.09.2010 - 15:14) Basili4 написал(а):
waldicom
Почему не зная. Возможно и зная вот если зная fseek($fd,'$sizeline*3'); Если не зная то это другая история но тоже не сложно читаем в одну переменную убиваем \r разбиваем текст по \n и выводим с нужной строки.

Спустя 9 минут, 54 секунды (3.09.2010 - 15:24) waldicom написал(а):
Цитата (Basili4 @ 3.09.2010 - 14:14)

Почему не зная. Возможно и зная вот если зная fseek($fd,'$sizeline*3');

Потому что не зная. Откуда тут переменная $sizeline? Строки все одинаковы по длине?

Цитата (Basili4 @ 3.09.2010 - 14:14)

Если не зная то это другая история но тоже  не  сложно читаем в одну переменную убиваем \r разбиваем текст по \n  и выводим с нужной строки.

Я написал: как с помощью только fseek() перейти на третью строку
Был дан ответ про гугл и подумать.
Я понял ответ так, что ты сможешь это сделать, а на деле пустая болтовня оказывается.

Спустя 13 минут, 42 секунды (3.09.2010 - 15:38) Basili4 написал(а):
waldicom
ТС - ничего про длины не говорил я предположил что размеры строки он знает и дал ответ. Но я дал А ты только полемику развел. П.С. и кстати ТС чдо сих пор не уточнил известны ему размеры строки или нет.

Спустя 4 минуты, 33 секунды (3.09.2010 - 15:42) waldicom написал(а):
Цитата (Basili4 @ 3.09.2010 - 14:38)
ТС - ничего про длины не говорил я предположил что размеры строки он знает и дал ответ.

Сказал - сделал. Не сделал - балабол. Все просто.

Спустя 3 минуты (3.09.2010 - 15:45) Basili4 написал(а):
waldicom
$fr=fread($file,100);

судя по коду ТС читает по 100 байт за раз судя по сему это это и есть размер строки

т.е. fseek($fr,300);

и вся песня.

Спустя 13 минут, 26 секунд (3.09.2010 - 15:59) sergeiss написал(а):
Basili4 - в данном случае ты не прав smile.gif Потому что более общий случай - это когда длина строки не известна. И у ТС в явном виде ничего не сказано. 100 байт - неизвестно, почему столько указано.

Спустя 12 минут, 10 секунд (3.09.2010 - 16:11) Basili4 написал(а):
sergeiss
Может быть и не прав но ТС молчит значит удовлетворился ответом

Спустя 2 минуты, 3 секунды (3.09.2010 - 16:13) linker написал(а):
Во многих примерах указывают fread($fh, 1024), но это же не значит, что там строки по 1024 байт, так и здесь не факт что все строки имеют жестко длину 100 байт.

Спустя 35 минут, 17 секунд (3.09.2010 - 16:48) Wolfer написал(а):
Сори что не отвечал, сеть лагала.
Длина строк извесна, в 1 и 2 по 7 символов, а в третей 100.

Спустя 10 минут, 1 секунда (3.09.2010 - 16:58) Basili4 написал(а):
Wolfer
в третью
fseek($fd,14); должен попасть

Спустя 3 минуты, 42 секунды (3.09.2010 - 17:02) linker написал(а):
А если нужно с 10 строки? А если UTF-8? А если есть "\r"?

Спустя 1 минута, 50 секунд (3.09.2010 - 17:04) Basili4 написал(а):
linker
если строки разной длины тогда это другая история.

Спустя 31 минута, 23 секунды (3.09.2010 - 17:35) Wolfer написал(а):
Цитата (Basili4 @ 3.09.2010 - 13:58)

в третью
fseek($fd,14);  должен попасть

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

Спустя 2 минуты, 45 секунд (3.09.2010 - 17:38) waldicom написал(а):
Цитата (Wolfer @ 3.09.2010 - 16:35)
Цитата (Basili4 @ 3.09.2010 - 13:58)

в третью
fseek($fd,14);  должен попасть

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

Те че конкретно надо?
Позиционировать на любую строку или конкретно на третью?

Спустя 4 минуты, 23 секунды (3.09.2010 - 17:42) Wolfer написал(а):
Мне нужно прочитать файл, а именно третью строку в файле, в которой 100 символов (а после, ее вывести (print), но это уже не важно)

Спустя 1 час, 30 минут, 2 секунды (3.09.2010 - 19:12) Гость_Michael написал(а):
а что тогда важно?

Спустя 3 часа, 22 минуты, 22 секунды (3.09.2010 - 22:35) sergeiss написал(а):
Наиболее универсальным будет использовать file() для чтения. Если это, конечно, обычный текстовый файл.
И там уже спокойно взять нужный элемент массива. И не важно будет, какая там кодировка файла, какие там разделители между строками и т.д. и т.п.

А все остальные варианты - "от лукавого" smile.gif

Спустя 32 минуты, 37 секунд (3.09.2010 - 23:07) Basili4 написал(а):
sergeiss
А если файл ого-го какой огромный а надо взять лишь сравнимо мало строчек

Спустя 41 минута, 57 секунд (3.09.2010 - 23:49) sergeiss написал(а):
Цитата (Basili4 @ 4.09.2010 - 00:07)
А если файл ого-го какой огромный а надо взять лишь сравнимо мало строчек

Тогда надо использовать fgets для чтения только нужного количества строк. Точнее, прочитываем и забываем все строки, которые нам не нужны.

Другой вариант, если с одними и теми же данными много работаем - разместить их в БД и не "парить мозХ" никому, в т.ч. и себе smile.gif

Спустя 42 минуты, 21 секунда (4.09.2010 - 00:32) Wolfer написал(а):
$ar = file('C:\file.txt' );
echo $ar[2];




Всем спасибо! никто толком ничего не знает. Зато столько столько споров не по теме...

Спустя 23 минуты, 32 секунды (4.09.2010 - 00:55) waldicom написал(а):
Цитата (Wolfer @ 3.09.2010 - 23:32)
никто толком ничего не знает

Это единственная нормальная мысль от Вас за все Ваши сообщения.

Спустя 8 часов, 2 минуты, 34 секунды (4.09.2010 - 08:58) sergeiss написал(а):
Цитата (waldicom @ 4.09.2010 - 01:55)
Это единственная нормальная мысль от Вас за все Ваши сообщения.

laugh.gif laugh.gif laugh.gif
Как правильно говорит Василич - "Быть Нубом не страшно. Страшно быть им и не признавать этого." Тут мы в лице ТС как раз и наблюдаем этот самый случай.
Быстрый ответ:

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