Форум: "Основная";
Текущий архив: 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