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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2013, 10:17   #1
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию Проверка на ввод цифр и букв

Заранее извиняюсь за ламерский вопрос, но не догоняю я как это сделать.
В общем, ввожу в Едит1 символы. Как сделать проверку: если вводятся цифры то выполняется один код программы, а если буквы, то другой.
Вот как делает чайник:
s1:=Edit1.Text;
if (s1='1') or (s1='2') or (s1='3') or (s1='4') or (s1='5') or (s1='6') or
(s1='7') or (s1='8') or (s1='9')
then begin ... end
Как не писать такой длиный код?
Может надо массив использовать?
helpkz вне форума Ответить с цитированием
Старый 23.04.2013, 11:09   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а что, если в Edit1 ввели НЕСКОЛЬКО символов?!

а если нужно проверить только один символ (первый, например)
тогда
Код:
  if Length(Edit1.Text)>0 then {строка в Edit1 не пустая}
     if Edit1.Text[1] in ['0'..'9'] 
           then  ... // 1-й символ цифра
           else  ...  // 1-й символ НЕ цифра
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.04.2013, 11:12   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
а что, если в Edit1 ввели НЕСКОЛЬКО символов?!
Edit1.MaxLength:=1; не даст больше одного ввести
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.04.2013, 11:57   #4
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а что, если в Edit1 ввели НЕСКОЛЬКО символов?!

а если нужно проверить только один символ (первый, например)
тогда
Код:
  if Length(Edit1.Text)>0 then {строка в Edit1 не пустая}
     if Edit1.Text[1] in ['0'..'9'] 
           then  ... // 1-й символ цифра
           else  ...  // 1-й символ НЕ цифра
Да, я не учел, что может число разное быть. Двузначное и т.д. Хотя надо.
helpkz вне форума Ответить с цитированием
Старый 23.04.2013, 12:00   #5
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию

Вообще, хотелось бы вот так:
Допустим, введен текст "2 дома, 22 квартиры". Как можно распознать 2 и 22, что они цифры?

Цитата:
Сообщение от helpkz Посмотреть сообщение
Вообще, хотелось бы вот так:
Допустим, введен текст "2 дома, 22 квартиры". Как можно распознать 2 и 22, что они цифры?
Может лучше проверять каждый введенный символ? Как лучше выстроить алгоритм?

__________
форум - не чат.
Есть что добавить к своему крайнему сообщению, редактируйте его.
Модератор

Последний раз редактировалось Serge_Bliznykov; 23.04.2013 в 12:59.
helpkz вне форума Ответить с цитированием
Старый 23.04.2013, 13:01   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Допустим, введен текст "2 дома, 22 квартиры". Как можно распознать 2 и 22, что они цифры?
ну, допустим...
Нужно просто ПАРСИТЬ строку. Можно это делать ручками, можно привлечь регулярные выражения, смотрите, как Вам проще..
а в какой момент парсить - тоже Вам виднее.
и, кстати, что потом с найденными числами делать, тоже.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка на отсутствие букв-цифр в строке DeveloPerchik Общие вопросы Delphi 6 08.04.2012 20:10
Группы букв, знаков и цифр Паркер Помощь студентам 2 08.11.2011 22:18
Запрет на ввод цифр или букв. (*_*) Общие вопросы C/C++ 2 09.06.2009 12:51
Генерирование букв и цифр Pavelok Общие вопросы Delphi 5 15.05.2009 17:48
Ввод только букв или цифр... Teleport Помощь студентам 8 12.06.2008 14:57