Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
308 / 61 / 12
Регистрация: 21.12.2011
Сообщений: 290

Проверка синтаксиса Edit

24.05.2013, 09:32. Показов 2880. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем поискал нашел как сделать проверку синтаксиса... но не нашел как сделать так, чтобы можно было вводить, например, - первым символом в строке, а в остальных символах он не использовался. Т.е. - можно ввести 1 раз и только первым символом. Как так сделать?

Еще вопрос.. У меня два едита складываются флоатом в листбокс.... Как сделать проверку синтаксиса на точку? Ну, чтобы точка вводилась - я сделал, а как сделать чтобы она вводилась только (только!) 1 раз? Ковырялся с флагом.. Но не получается =\

C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
        Set < char, 0, 255 > Dig;
        if ( ! (Dig << '0' <<'1' << '2' << '3' <<'4' << '5' << '6' << '7'<< '8' << '9'<<'\b').Contains(Key))
        {
                Key = 0;
        }
        /*if (!(Key >= '0' && Key <= '9') && (Key!=8) && (Key!='\b') && (Key!='.')&&(Key!='-'))
        {
                Key = 0;
        }*/
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.05.2013, 09:32
Ответы с готовыми решениями:

Запись в файл из полей Edit и проверка Edit на пустоту
TForm1 *Form1; int Ext=0; int i; //--------------------------------------------------------------------------- __fastcall...

Проверка синтаксиса программ на Паскале
Всем привет. Я тут немного в шоке от своего варианта )). Вот такая вот задачка: Программа простейшей синтаксической проверки...

Проверка Edit
Как проверить Edit, чтоб в нем были ток цифры??? подскажите плиз. :)

11
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
24.05.2013, 09:36
синтаксис эдита - это что? ну и все остальное мрак, зато приятно, что не складываются нармошкой... но я все равно ничего не понял
0
308 / 61 / 12
Регистрация: 21.12.2011
Сообщений: 290
24.05.2013, 09:38  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
синтаксис эдита - это что? ну и все остальное мрак, зато приятно, что не складываются нармошкой... но я все равно ничего не понял
))))

Ну поле ввода Edit - нужно проверять вводимые символы
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
24.05.2013, 09:57
теперь все остальное - не по-программистски, а своими словами, внятно, для особо тупых, типа меня
0
308 / 61 / 12
Регистрация: 21.12.2011
Сообщений: 290
24.05.2013, 10:15  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
теперь все остальное - не по-программистски, а своими словами, внятно, для особо тупых, типа меня
ну вот смотри - мы складываем два числа...
мне нужно чтобы можно было вводить отрицательные числа - т.е. - минус может вводиться только первым в числе.. в других мест он не может вводиться - в середине, в конце и т.п.))
Code
1
2
3
-53 - правильно
54-454 - неправильно
5445---544- - неправильно
Также с точкой, только она в числе должна вводиться только один раз..
Code
1
2
3
0.454 - правильно
.3443. - не правильно
0....34.. - неправильно
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
24.05.2013, 10:20
Цитата Сообщение от Nkey Посмотреть сообщение
Также с точкой, только она в числе должна вводиться только один раз..
Для точки можно использовать такую запись:__
C++
1
2
3
4
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
    if (Key=='.' && Edit1->Text.Pos(".")) Key=NULL;    
}
аналогично и для минуса:
C++
1
 if (Key=='-' && Edit1->Text.Length()>0) Key=NULL;
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
24.05.2013, 10:40
C++
1
2
3
4
AnsiString str = Edit->Text;
if (str[1]!='-') {
  ShowMessage("Разрешен только знак минуса");
}
А вот точки, я думаю, легче всего считать, при первом вводе точке записывать
C++
1
int i = 1;
, при последующих попытках ввода точки с клавиатуры проверять -
C++
1
2
3
if (int i > 1) {
  ShowMessage("Точки кончились");
}
Ну и добавить обработку попыток копирования и вставки точки в обход непосредственного ввода.

Добавлено через 2 минуты

Не по теме:

хм, или мы по-разному поняли задачу

1
308 / 61 / 12
Регистрация: 21.12.2011
Сообщений: 290
24.05.2013, 10:44  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
C++
1
2
3
4
AnsiString str = Edit->Text;
if (str[1]!='-') {
  ShowMessage("Разрешен только знак минуса");
}
А вот точки, я думаю, легче всего считать, при первом вводе точке записывать
C++
1
int i = 1;
, при последующих попытках ввода точки с клавиатуры проверять -
C++
1
2
3
if (int i > 1) {
  ShowMessage("Точки кончились");
}
Ну и добавить обработку попыток копирования и вставки точки в обход непосредственного ввода.

Добавлено через 2 минуты

Не по теме:

хм, или мы по-разному поняли задачу

Ну можно записывать отрицательные числа) Не всегда, но можно...

В плане с точкой - она одна в числе)

Сообщения с ошибкой не нужны.. Ну я переделаю..)
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
24.05.2013, 11:05
Цитата Сообщение от Nkey Посмотреть сообщение
Ну можно записывать отрицательные числа) Не всегда, но можно...
если я верно понял, рядом с эдитом будут гламурно смотреться две радиокнопки:
1. Введите число без минуса.
2. Введите число с минусом.
Если вкоючена вторая радиокнопка, проверяете, действительно ли вервым символом эдита есть минус.
0
308 / 61 / 12
Регистрация: 21.12.2011
Сообщений: 290
24.05.2013, 11:06  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
если я верно понял, рядом с эдитом будут гламурно смотреться две радиокнопки:
1. Введите число без минуса.
2. Введите число с минусом.
Если вкоючена вторая радиокнопка, проверяете, действительно ли вервым символом эдита есть минус.
Ммм... нет) просто банальная проверка на минус
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
24.05.2013, 11:07
Цитата Сообщение от Nkey Посмотреть сообщение
В плане с точкой - она одна в числе)
- это я с трудом, но понял, но в эдит то можно ввести столько кнопок, сколько влезет.

Добавлено через 1 минуту
Цитата Сообщение от Nkey Посмотреть сообщение
просто банальная проверка на минус
т.е., ввод чисел без минуса не предполагается.
0
308 / 61 / 12
Регистрация: 21.12.2011
Сообщений: 290
24.05.2013, 11:28  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
- это я с трудом, но понял, но в эдит то можно ввести столько кнопок, сколько влезет.

Добавлено через 1 минуту
т.е., ввод чисел без минуса не предполагается.
Ввод чисел возможен, как отрицательных, так и положительных чисел))

Просто можно в эдит ввести число с двуми, тремя и т.д. точками - нужно, чтобы только одна точка вводилась)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.05.2013, 11:28
Помогаю со студенческими работами здесь

Проверка Edit
как задать чтоб при в вводе в Edit делало проверку? Типа вводу пароля и логина... if(Edit1-&gt;Text=&quot;kolya&quot;) and...

Проверка Edit
Помогите исправить. Если в Edit пусто, то выводятся оба сообщения по очереди. if...

Проверка заполнения Edit-ов в цикле: как исключить один Edit из проверки?
Имеется 6 Edit`ов. Хочу проверить 5 Edit`ов на заполнение/пустоту. Написал вот такой вот код, но по сути он проверяет все Edit`ы, а...

Проверка синтаксиса
Доброго времени суток! Ребят проверьте правильный ли тут синтаксис $name = htmlspecialchars(trim($_POST)); Заранее большое спасибо

Проверка синтаксиса SQL
Ребята, привет. Начал изучать SQl, соответственно спросить совета не у кого, вынужден спрашивать здесь ) При выполнении данного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru