Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2010, 23:21   #1
sergeiqwe
Пользователь
 
Регистрация: 29.04.2010
Сообщений: 31
Восклицание повторяет значение в цыкле while

повторяет значение в цыкле while как исправить выводит 88 раз одинаковое значение а должно перебирать файлы как исправить ?
<?php
$ggg = 0;


$sss = 88;
while ($ggg < $sss)
{
$ggg = $ggg + 1;
$filename = "1\b ($ggg).txt";
// Открываем файл
$fd = fopen($filename,"r");
// Читаем его содержимое в буфер
$i=0;
do{
$buffer = fread($fd, 1);
$res.=$buffer;
preg_match_all("/(\w+)/i",$res,$words);
}while(count($words[0])<5 and $buffer!=null);
// Закрываем файл
fclose($fd);

echo "$res<br>";
}
?>
sergeiqwe вне форума Ответить с цитированием
Старый 07.05.2010, 09:56   #2
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Вам уже отвечали на этот вопрос!!!
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 07.05.2010, 15:11   #3
Vertexxx
Заблокирован
 
Регистрация: 10.04.2010
Сообщений: 145
По умолчанию

Цитата:
Сообщение от sergeiqwe Посмотреть сообщение
повторяет значение в цыкле while как исправить выводит 88 раз одинаковое значение а должно перебирать файлы как исправить ?
<?php
$ggg = 0;


$sss = 88;
while ($ggg < $sss)
{
$ggg = $ggg + 1;
$filename = "1\b ($ggg).txt";
// Открываем файл
$fd = fopen($filename,"r");
// Читаем его содержимое в буфер
$i=0;
do{
$buffer = fread($fd, 1);
$res.=$buffer;
preg_match_all("/(\w+)/i",$res,$words);
}while(count($words[0])<5 and $buffer!=null);
// Закрываем файл
fclose($fd);

echo "$res<br>";
}
?>
Ваш код очень неудобно читать и понимать. Научитесь форматировать код, чтобы был яснее ход его логики, а когда всё (или почти всё) написано в один столбик...

PHP код:
$ggg 0;


$sss 88;
// В этом цикле условие итерации проверяется в начале, 
// То есть до того, как цикл запустится
while ($ggg $sss)
{
    
$ggg $ggg 1// по этой записи можно сразу оценить ваш уровень. Можно было написать $ggg++
    
$filename "1\b ($ggg).txt"// или даже без $ggg++ просто ++$ggg 
// Открываем файл 
$fd fopen($filename,"r"); 
// Читаем его содержимое в буфер 
$i=0// это вообще зачем здесь? Эта переменная больше нигде не используется.
// А этот цикл - do...while... - уже оскомину набил.
// Наверное, по попову учились.
// Дело в том, что в таком цикле
// Условие итерации проверяется в конце, а не в начале.
// То есть при любом условии этот цикл отработает хотя бы один раз,
// Что иногда чревато. Вам это надо?
do{
    
$buffer fread($fd1);
    
$res.=$buffer;
    
preg_match_all("/(\w+)/i",$res,$words);
}while(
count($words[0])<and $buffer!=null);
// Закрываем файл 
fclose($fd); 

echo 
"$res<br>";  

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

Последний раз редактировалось Vertexxx; 07.05.2010 в 15:19.
Vertexxx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти значение на другом листе и подставить значение следующей ячейки ElenaNTro Microsoft Office Excel 12 11.02.2019 12:44
Значение Label Jene4ka Общие вопросы Delphi 5 13.01.2010 19:00
как сделать паузу (или задержку) в цыкле : с# Natok Помощь студентам 7 30.05.2009 12:55
caption в цыкле nikleb Общие вопросы Delphi 3 18.04.2008 15:23