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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> выбрать из текста в файле только целые числа 
:(
    Опции темы
Rezzonans
Дата 14.7.2010, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

Задание:

Написать скрипт на языке php со следующим функционалом:

1. считать из файла file.txt только уникальные целые числа в массив и
сохранить в базу данных
2. вывести "красиво" из базы данных массив и сумму всех
элементов
3. создать два массива чётных и нечетных чисел из уже
имеющихся данных и сохранить в базу данных
4. прочитать из базы данных массив нечетных чисел отсортировав по
возрастанию, а четных в массив с сортировкой по убыванию
5. вывести "красиво" два массива и сумму всех элементов двух
массивов

Файл file.txt:

hello
4
lala-blabla ! =))
:(
457 -1.000001
32
98
2 +3.14 12637 9812 89123789
1
O O1 01
1O
1OO
zero!
df1000 ggg...
-5
105
-2006
wassauupp!!

При решении задачи использовать ООП - оформить функционал как класс,
MySQL, регулярные выражения, шаблоны для вывода страниц.



Вот, вообщем, такие задания нынче дают при устройстве на работу.. Проблема заключается в том, что никак не получается составить регулярное выражение для того, что б из файла считать все целые цифры. Максимум что получилось - это вот:

Код

preg_match( "/[+-]?[0-9]+[^A-Za-z\!\:\(\)\=]*/", $str, $matches );


Но это не вариант, ибо в результате проскакивает число +3.14. К слову сказать, плюс тож убрать не получается. Не бейте ногами, подскажите пожалуйста регулярку, я в них не силен :(
--------------------
Первый детектор лжи был собран из ребра мужчины. Впрочем, до сих пор, никаких изменений не притерпел
PM MAIL   Вверх
ksnk
Дата 14.7.2010, 09:56 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Rezzonans, разбить файл по пробельным символам и все preg_split('/\s+/', ...). Все элементы должны быть числами.

для проверки, что это целое число - используй ctype_digit.

для остального можно floatval использовать. Если не число - будет 0. на сумму не влияет. Проверить правильно получилось или нет - тоже довольно просто floatval($s)==$s - если истина, значит чисто конкретно число...

регулярка здоровая получится, чтобы корректно проверить на число. Числа бывают с + - , с точкой, мантисой и отрицательной-положительной мантисой. Но можно предложить грязненькую-простенькую
/^[0-9Е\.+-]+$/
 для фильтра значений в этом файле достаточно. А floatval покажет что там неправильно на самом деле.

Уникальные значения делаются array_unique

остальные задачи пока не решал?  smile 

Это сообщение отредактировал(а) ksnk - 14.7.2010, 09:58


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Rezzonans
Дата 16.7.2010, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ну вот, вообщем, криво-косо, но сделал. Может кому пригодиться.



ksnk, Вам спасибо за помощь, array_unique очень пригодилась.

Присоединённый файл ( Кол-во скачиваний: 26 )
Присоединённый файл  code.zip 3,80 Kb
--------------------
Первый детектор лжи был собран из ребра мужчины. Впрочем, до сих пор, никаких изменений не притерпел
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0691 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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