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

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

24.05.2013, 09:32. Показов 2837. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru