Войти

Показать полную графическую версию : Фильтрация ввода данных


DaRiYs
30-11-2008, 12:44
Подскажите каким способом можна реализовать в обычной консольной простенькой программе фильтрацию на ввод. Тоесть например штоб кроме чисел нельзя было ничего вводить??? Мож есть какаято стандартная функция????(но не isalpha() или isnum() и подобные)))))

verdix
30-11-2008, 13:30
Не знаю как на С, но на делфики можна написать процедуру, каторая при каждой нажатой кнопке будет проверять,ДОПУСТИМ по коду кнопки. Но немножко накладно для компьютера. НО зато работать будет. :)

pva
30-11-2008, 13:32
в простенькой консольной - никак. Только если одно из:
1. проверять введённую строчку и ругаться при несоответсвии.
2. пропускать "непонравившиеся символы" и из того, что осталось состряпать ввод.
Дело в том, что при вводе с консоли используется внешний редактор командной строки, который потом засылает эту строчку во входной поток к консольной программе, а с ним никак не договориться. Если взяться его переделывать - получится либо не простенькая, либо не консольная программа.

Drongo
30-11-2008, 13:37
pva, Почему? Посмотрите эту тему - Я хочу запретить ввод букв. Как это сделать? (http://forum.oszone.net/showthread.php?t=108817&highlight=%E2%E2%EE%E4%E8%F2%FC+%F7%E8%F1%EB%E0). Сообщения от Admiral'a. Хотя в принципе, да, такой же алгоритм проверки. Прошу извинить, погорячился немного. :)

P.S. Если тема окажется в одном вопросе - склею.

NYX
21-12-2009, 16:50
Что бы ограничить ввод + возможность использование к примеру русских имен файло + возможность вводить замаскированные пароли + по нажатию CTRL+V вставлять из буффера, я написал вот такую ПРИБЛУДУ которая на мой взгляд удобная :)

ссылка на моё сообщениеце - http://forum.oszone.net/post-1300846.html#post1300846

Beatrik
19-10-2012, 07:32
Добрый день.
Вообще, по поводу ограничения и фильтрации ввода я бы рекомендовал посмотреть эту тему (http://hashcode.ru/questions/147191/c-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B2%D0%B2%D0%BE%D0%B4%D0%B0)




© OSzone.net 2001-2012