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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2010, 22:00   #1
sinobithug
Пользователь
 
Регистрация: 14.06.2009
Сообщений: 63
По умолчанию Поиск символов в тестовом файле и их вывод.

Нужно нужно вывести количество цифр которые есть в заранее созданном файле 1. txt .
PHP код:
<?
$z
=";
$x='0123456789';
$f=fopen("1.txt","r");
while(!feof(
$f))
$a=fgetc($f);
$z=$z.$a;
sk=0;
for(
$i=0; $i<strlen($x); $i++)
for(
$j=0; $j<strlen($z); $j++)
{if(
$x[$i]==$z[$j]){$k++;}}
print 
$k;
?>
Помогите пожалуйста найти ошибку.

Последний раз редактировалось sinobithug; 03.11.2010 в 22:14.
sinobithug вне форума Ответить с цитированием
Старый 04.11.2010, 00:20   #2
xDyPx
Форумчанин
 
Аватар для xDyPx
 
Регистрация: 21.01.2009
Сообщений: 148
По умолчанию

Код:
...
sk=0;
...
Наверное,
Код:
$k=0;
МОЙ САЙТ
Компьютер позволяет решать все те проблемы, которые до появления компьютера не существовали.
xDyPx вне форума Ответить с цитированием
Старый 04.11.2010, 02:52   #3
sinobithug
Пользователь
 
Регистрация: 14.06.2009
Сообщений: 63
По умолчанию

Код:
<?
$z=";
$x='0123456789';
$f=fopen("1.txt","r");
while(!feof($f))
$a=fgetc($f);
$z=$z.$a;
$k=0;
for($i=0; $i<strlen($x); $i++)
for($j=0; $j<strlen($z); $j++)
{if($x[$i]==$z[$j]){$k++;}}
print $k;
?>

parse erorr сменился на fatal error. Полагаю где-то пропущены(; или  {)
sinobithug вне форума Ответить с цитированием
Старый 04.11.2010, 12:17   #4
xDyPx
Форумчанин
 
Аватар для xDyPx
 
Регистрация: 21.01.2009
Сообщений: 148
По умолчанию

Код:
$z=";
Кавычки нет еще одной.
МОЙ САЙТ
Компьютер позволяет решать все те проблемы, которые до появления компьютера не существовали.
xDyPx вне форума Ответить с цитированием
Старый 04.11.2010, 12:23   #5
xDyPx
Форумчанин
 
Аватар для xDyPx
 
Регистрация: 21.01.2009
Сообщений: 148
По умолчанию

А вот так по-проще будет:
Код:
<?
$f=fopen("1.txt","r");
$k=0;
while(!feof($f))
{
$a=fgetc($f);
if((0<$a) && ($a<9)) $k++;
}
print $k;
?>
МОЙ САЙТ
Компьютер позволяет решать все те проблемы, которые до появления компьютера не существовали.
xDyPx вне форума Ответить с цитированием
Старый 04.11.2010, 19:22   #6
kirosin
Форумчанин
 
Аватар для kirosin
 
Регистрация: 15.01.2010
Сообщений: 209
По умолчанию

А вот так еще и правильно считать будет )))
Код:
<?
$f=fopen("1.txt","r");
$k=0;
while(!feof($f))
{
$a=fgetc($f);
if (preg_match("|^[\d]+$|", $a)) $k++;
}
print $k;
?>
Все генитальное просто.
kirosin вне форума Ответить с цитированием
Старый 04.11.2010, 22:41   #7
sinobithug
Пользователь
 
Регистрация: 14.06.2009
Сообщений: 63
По умолчанию

Всем спасибо вот рабочий код

Код:
<?
$z="";
$x='0123456789';
$f=fopen("1.txt","r");
while( !feof( $f ) ){
$a=fgetc( $f );
$z.= $a;
}
$k=0;
for($j=0; $j<strlen($z); $j++){
for($i=0; $i<strlen($x); $i++){
if($x[$i]==$z[$j]){
$k++;
}
}
}
print $k;
?>
sinobithug вне форума Ответить с цитированием
Старый 05.11.2010, 14:55   #8
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Цитата:
Сообщение от sinobithug Посмотреть сообщение
Всем спасибо вот рабочий код

Код:
<?
$z="";
$x='0123456789';
$f=fopen("1.txt","r");
while( !feof( $f ) ){
$a=fgetc( $f );
$z.= $a;
}
$k=0;
for($j=0; $j<strlen($z); $j++){
for($i=0; $i<strlen($x); $i++){
if($x[$i]==$z[$j]){
$k++;
}
}
}
print $k;
?>
Вы для того чтобы есть суп из тарелки экскаваторный ковш берёте? Или может чтобы прибить гвоздик в стену для картины используете кувалду и отбойный молоток?

PHP код:
$file file_get_contents('1.txt');
$nums = array('0''1''2''3''4''5''6''7''8''9');
$k 0;
foreach (
$nums as $num) {
    
$k += substr_count($file$num);

Разница в скорости работы с вашим "рабочим кодом" около 1000 раз.
Ваш код: 154973 цифр найдено за 8.19992303848 секунд
Мой код: 154973 цифр найдено за 0.0103588104248 секунд
Уверен есть ещё более элегантные решения. Но боже упаси вас программировать на PHP с бездумным использованием вложенных циклов.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в файле, вывод из файла online_maniac Помощь студентам 2 01.11.2009 09:32
не получается прога на делфи.поиск символов в файле valiza Помощь студентам 6 03.07.2009 15:49
Чтение/Поиск в txt файле и вывод в ComboBox limnique Общие вопросы C/C++ 2 05.09.2008 23:01
Поиск символов в текстовом файле. Uomo Общие вопросы Delphi 8 24.10.2007 15:57