Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 6461
Последний выпуск: 19.06.2015

Ввод значений в ряд без подтверждения Enter-ом в bat-нике

61K
27 апреля 2012 года
vahminator
25 / / 30.10.2011
Тыкните носом, в какую сторону нужно копать, что бы решить следующее.... 3-й день убиваю время над этой программкой...

Собственно проблема в следующем:
Нужна программка, в которую вводится числа (в данном случае IP адрес) с проверкой на правельность. Но в моем коде она проверяет только после нажатия клавиши Enter + пишется в столбик(((
Как можно сделать, что бы числа писались в строчку и без нажатия на Enter?
P.S. нажатие на Enter можно эмулировать, но тут я еще не разобрался

Вот к примеру текстовый пример работы: (к примеру нужно ввести IP 174.34.9.234 )
B одну ячейку должно вводится 3 числа, оно проверило на корректность и поставило точку и после перескочило на следующую ячейку. если чисел 2 или 1 то переход на следующую ячейку происходит после нажатия на пробел....
Юзер вводит:
1 7 4 (сразу же проверка на корректность) . (и автоматически стала точка) 3 4 (тут числа 2 и юзер жмет пробел и происходит проверка и точка) . 9 (тут число одно и юзер снова жмет пробел и происходит проверка и точка) . 2 3 4 (проверка и ждем подтверждения клавишей Enter)

И мой примитивный код:

Код:
@echo off
 :one
 set /p one_ip=
 if /I %one_ip% LEQ 223 ( goto :two
 ) else (
 echo NO
 goto :one)
 :two
 set /p two_ip=
 if /I %two_ip% LEQ 255 ( goto :three
 ) else (
 echo NO
 goto :two)
 :three
 set /p three_ip=
 if /I %three_ip% LEQ 255 ( goto four
 ) else (
 echo NO
 goto :three)
 :four
 set /p four_ip=
 if /I %four_ip% LEQ 255 ( goto end
 ) else (
 echo NO
 goto :four)
 :end
 echo IP: %one_ip%.%two_ip%.%three_ip%.%four_ip%
 pause
313
28 апреля 2012 года
Alm3n
889 / / 29.05.2009
Какой-то изврат.
Либо юзать powershall, либо передавать как аргумент другой утилите и смотреть код завершения программы.
Думаю, можно посмотреть в сторону вызова функции из библиотеки, кажется, rundlll32 этим занималась, если не ошибаюсь, и вызывать из неё getch у стандартной с++ библиотеки.
10
29 апреля 2012 года
Freeman
3.2K / / 06.03.2004
Прочитай в доке по батникам (F1 в любой Винде), как for разбивает строки по разделителям. На первый взгляд нетривиально, но работает. Приходилось как-то разбирать строку пользователь/пароль@база.
313
29 апреля 2012 года
Alm3n
889 / / 29.05.2009
Цитата: Freeman
Прочитай в доке по батникам (F1 в любой Винде), как for разбивает строки по разделителям. На первый взгляд нетривиально, но работает. Приходилось как-то разбирать строку пользователь/пароль@база.


Какой разделитель у строки "123"?

6
30 апреля 2012 года
@pixo $oft
3.4K / / 20.09.2006
Так ему же ж в одну строку надо с разделителем-точкой.Без точки,вводом каждого сегмента адреса по очереди,он уже сделал
313
30 апреля 2012 года
Alm3n
889 / / 29.05.2009
Цитата: @pixo $oft
Так ему же ж в одну строку надо с разделителем-точкой.Без точки,вводом каждого сегмента адреса по очереди,он уже сделал


Не вчитался. Тогда всё хорошо.

61K
30 апреля 2012 года
vahminator
25 / / 30.10.2011
Цитата: Alm3n
Какой-то изврат.
Либо юзать powershall, либо передавать как аргумент другой утилите и смотреть код завершения программы.
Думаю, можно посмотреть в сторону вызова функции из библиотеки, кажется, rundlll32 этим занималась, если не ошибаюсь, и вызывать из неё getch у стандартной с++ библиотеки.



Если юзать Powershell - то в какую сторону нужно двигаться? мож есть для этого есть какое то готовое решение?

313
30 апреля 2012 года
Alm3n
889 / / 29.05.2009
Цитата: vahminator
[quote=Alm3n;49587]Какой-то изврат.
Либо юзать powershall, либо передавать как аргумент другой утилите и смотреть код завершения программы.
Думаю, можно посмотреть в сторону вызова функции из библиотеки, кажется, rundlll32 этим занималась, если не ошибаюсь, и вызывать из неё getch у стандартной с++ библиотеки.



Если юзать Powershell - то в какую сторону нужно двигаться? мож есть для этого есть какое то готовое решение?[/quote]
Думаю, в сторону ReadKey.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог