Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.01.02;
Скачать: [xml.tar.bz2];

Вниз

Проверка Edit.Text   Найти похожие ветки 

 
Жук ©   (2004-12-15 11:47) [0]

Как в условном операторе проверить, что введённый текст (длиной не больше 3) удовлетворяет виду "111" или "А11", где "А" - буква, а "1" - цифра ? Второй и третий символы (если они есть) - обязательно цифры.


 
Cosinus ©   (2004-12-15 11:48) [1]

in?


 
Anatoly Podgoretsky ©   (2004-12-15 11:50) [2]

if txt="111" or txt="A11" then
Если же это вообще любые цифры и буквы, то используй последовательное сравнение символов с помощью проверки их вхождения во множество - это операция IN


 
Reindeer Moss Eater ©   (2004-12-15 11:51) [3]

Работа со строкой как с массивом символов.
Оператор if.
Операции сравнения больше/меньше.


 
Жук ©   (2004-12-15 11:59) [4]

Блин ! Точно. Торможу просто, залез в IsCharAlphaNumeric :-)
Всем спасибо.


 
Жук ©   (2004-12-15 14:55) [5]

if not ((Edit1.Text[1] in ["1".."9"]) or (Edit1.Text[1] in ["А".."Я"])) or
             not ((Edit1.Text[2] in ["1".."9"]) or (Edit1.Text[2]="")) or
             not ((Edit1.Text[3] in ["1".."9"]) or (Edit1.Text[3]=""))
            then begin

Более извращенческого кода я ещё не видел :-(
Оптимизировать можно ?


 
Anatoly Podgoretsky ©   (2004-12-15 15:03) [6]

if (Edit1.Text[1] in ["1".."9", "А".."Я"]) and
  (Edit1.Text[2] in ["1".."9"]) and
  (Edit1.Text[3] in ["1".."9"])
then


 
Думкин ©   (2004-12-15 15:05) [7]

а если length(Edit1.Text)=1 ?


 
Александр Иванов ©   (2004-12-15 15:07) [8]


{$B+}
Str:=Edit1.Text;
if (not Str[1] in  ["1".."9","А".."Я"]) or (Length(Str)<=1) or (not Str[2] in ["1".."9"]) or (Length(Str)<=2) or (not Str[3] in ["1".."9"]) then

Мог ошибиться, но по-моему принцип тот. Т.е. вычисление логического выражения с ключем, по короткой схеме, чтобы не было выхода за границы массива(строки).


 
Александр Иванов ©   (2004-12-15 15:09) [9]

Забыл проверку на пустую строку.


 
Anatoly Podgoretsky ©   (2004-12-15 15:15) [10]

Думкин ©   (15.12.04 15:05) [7]
Оставлено в качестве домашнего задания. И к тому же тебя уже поправили, а если length(Edit1.Text)=0, а если больше 3 и так далее.

Допустимые значения
1. Длина строки ровно 3 символа
2. Первый символ из одного множества
3. второй и третий их другого множества

других условий не указано, вот все три условия и подлежат проверке и именно в таком порядке.


 
Думкин ©   (2004-12-15 15:18) [11]

> [10] Anatoly Podgoretsky ©   (15.12.04 15:15)

Верно. Только не поправили. :)
Я частность указал, которая не работает. Ведь по условию длина <= 3.


 
Жук ©   (2004-12-15 15:24) [12]

Думкин - прав, АП - не прав :-)
Длина действительно <=3, и код АП будет некорректно работать при длине "не 3".


 
Александр Иванов ©   (2004-12-15 15:26) [13]

{$B-}
Str:=Edit1.Text;
if (Length(Str)<=0) or (not Str[1] in  ["1".."9","А".."Я"]) or (Length(Str)<=1) or (not Str[2] in ["1".."9"]) or (Length(Str)<=2) or (not Str[3] in ["1".."9"]) then

В ключе оказывается тоже ошибся. :).


 
Жук ©   (2004-12-15 15:37) [14]

Александр Иванов ©   (15.12.04 15:26) [13]
Остроумно. Только можно без дополнительной переменной обойтись.


 
Александр Иванов ©   (2004-12-15 15:48) [15]

Можно.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.01.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.037 c
1-1103478929
Паша555
2004-12-19 20:55
2005.01.02
TAdvSringGrid &amp; Excel


4-1100540833
BBoost
2004-11-15 20:47
2005.01.02
открытие папки


1-1103389780
xayam
2004-12-18 20:09
2005.01.02
Перевод справки Delpi 7


14-1102687863
by
2004-12-10 17:11
2005.01.02
Кто пишет на .Net, подскажите.


14-1103055770
Kein
2004-12-14 23:22
2005.01.02
запись звука с центра





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский