Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение файла с конца, Как это реализовать 
:(
    Опции темы
PHPStudent
Дата 26.12.2005, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 24.12.2005
Где: Архыз

Репутация: -1
Всего: нет



Здравствуйте. У меня такой вопрос:
Как мне считывать с файла строки с последней строки до первой.
Пример:
Есть файл "mim.txt". Его содержимое:
Строка 1
Строка 2
Строка 3
...
Строка n-1
Строка n

Необходимо, чтобы выводилось так:
Строка n
Строка n-1
...
Строка 3
Строка 2
Строка 1

Как мне это лучше реализовать?
PM MAIL ICQ   Вверх
Dave
Дата 26.12.2005, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 17.6.2004

Репутация: -1
Всего: 1



http://ua2.php.net/file
дальше сам додумаешь.
PM MAIL   Вверх
PHPStudent
Дата 26.12.2005, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 24.12.2005
Где: Архыз

Репутация: -1
Всего: нет



Я то умею загружать файл в массив.
Но вот так ничего не выводит:
Код

<?
  $txt_f=file("./text/text.txt");
  for($i=sizeof($txt_f);$i=0;$i--)
  {
    echo($txt_f[$i]);
  }
?>

Может что-то я делаю не так?
PM MAIL ICQ   Вверх
Dave
Дата 26.12.2005, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 17.6.2004

Репутация: -1
Всего: 1



Цитата(PHPStudent @ 26.12.2005, 10:08)
for($i=sizeof($txt_f);$i=0;$i--)

ты понимаешь смысл этой строки ?
напиши что она делает

Это сообщение отредактировал(а) Dave - 26.12.2005, 10:22
PM MAIL   Вверх
PHPStudent
Дата 26.12.2005, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 24.12.2005
Где: Архыз

Репутация: -1
Всего: нет



Я дкмаю, что она считает элементы массива с конца. т.е. 9-8-7-6-5-4-3-2-1-0
Так думаю, что не правильно.
Если бы я был в чем-то уверен, то не постил бы. Помогите, плз, а не ссылки давайте.
smile

Заранее благодарен.
PM MAIL ICQ   Вверх
Dave
Дата 26.12.2005, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 17.6.2004

Репутация: -1
Всего: 1



Цитата(PHPStudent @ 26.12.2005, 10:25)
Если бы я был в чем-то уверен, то не постил бы. Помогите, плз, а не ссылки давайте.

Как же ты собираешься программировать если ты не знаешь самого простого ? Теорию подымай.
Учимся работать с циклами.

идем сюда : http://ua.php.net/for


PM MAIL   Вверх
sugee
Дата 26.12.2005, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 423
Регистрация: 12.6.2005

Репутация: 1
Всего: 4



Код

<?
  $txt_f=array_reverse (file("./file.txt"));

  for($i=0; $i<sizeof($txt_f); $i++)
  {
    echo $txt_f[$i];
  }
?>

PM MAIL   Вверх
PHPStudent
Дата 26.12.2005, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 24.12.2005
Где: Архыз

Репутация: -1
Всего: нет



Спасибо, Dave.
На счет того, что я программировать не умею, конечно, это ты зря...
На php не умею, согласен. Но есть же и другие языки smile

Значит решил проблему следующим образом. Подскажи, правильно?
Код

<?    
  $txt_f=file("./text/text.txt");    
  $i=sizeof($txt_f);
  while($i--)    
  {    
    echo($txt_f[$i]);    
  }    
?>

PM MAIL ICQ   Вверх
Dave
Дата 26.12.2005, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 17.6.2004

Репутация: -1
Всего: 1



Цитата(PHPStudent @ 26.12.2005, 10:40)
На php не умею, согласен. Но есть же и другие языки

о пхп и говорим : )
ну ладно, погарячился я
Цитата(PHPStudent @ 26.12.2005, 10:40)

Значит решил проблему следующим образом. Подскажи, правильно?

тоже вариант.

ну а как с for сделать тоже самое тебе sugee написал.

Это сообщение отредактировал(а) Dave - 26.12.2005, 11:04
PM MAIL   Вверх
Guest
Дата 26.12.2005, 13:19 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Пояснили бы человеку...

2 PHPStudent. У тебя в условии цикла индекс $i получает значение 0, и результат проверки условия становится false, т.е цикл никогда не выполнится.

Цитата(PHPStudent @ 26.12.2005, 10:08)
Код

<?
  $txt_f=file("./text/text.txt");
  for($i=sizeof($txt_f);$i=0;$i--)
 // Надо было $i>=0,     ^^^ тогда бы работало.
  {
    echo($txt_f[$i]);
  }
?>

Может что-то я делаю не так?


  Вверх
shader
Дата 26.12.2005, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 16.5.2004
Где: kirovogradcity

Репутация: нет
Всего: нет



PHPStudent используй простой array_reverse(). Функция переворачивает массив задом наперед.

Цитата(sugee @ 26.12.2005, 10:32)
$txt_f=array_reverse (file("./file.txt"));

  for($i=0; $i<sizeof($txt_f); $i++)
  {
    echo $txt_f[$i];
  }


PM MAIL WWW   Вверх
Mal Hack
Дата 26.12.2005, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(shader @ 26.12.2005, 13:30)
PHPStudent используй простой array_reverse(). Функция переворачивает массив задом наперед.

Зачем? Вполне можно организовать downto цикл и не грузить память реверсом.
PM ICQ   Вверх
PHPStudent
Дата 26.12.2005, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 24.12.2005
Где: Архыз

Репутация: -1
Всего: нет



Я уже сделал. Но очень интересно.
Как это сделать через downto
PM MAIL ICQ   Вверх
XOMbl4
Дата 26.12.2005, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Форумное жывотнае
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 2.12.2005

Репутация: 1
Всего: 2



Я ужо задовал такой вопрос,вот код:
Код

//Считаем элементы массива
$count = count($inf);
//Отнимаем 1,если этого не сделать,будет куйня
$result=$count-1;
//Собчно цикла
for ($i = $result; $i--) {
     print("$inf[$i]<br>");
     if ($i == 0) {
     exit();
     }
}

PM MAIL ICQ   Вверх
Mal Hack
Дата 26.12.2005, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



XOMbl4 а что, в цикле нельзя написать $i>=0 ???
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0840 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.