![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Виталий_Сигов |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Репутация: ![]() ![]() ![]() |
Здравствуйте, уважаемые форумчане.
Пишу ограничение, которое запрещает вводить символы кроме русских букв для полей "Наименование товара" и "Страна - экспортер". Но это ограничение срабатывает лишь на 1-м поле "Наименование товара", для поля "Страна - экспортер" это ограничение не обрабатывается. И курсор автоматически переходит в поле "Количество товара". Код type tovar=record naimenovanie:string[30]; strana_exporter:string[30]; data_postavki:string[10]; kolichestvo_tovara:byte; end; var tov:array[1..100] of tovar; f:file of tovar; date,str:string; k,l,n:integer; i,j:byte; ch:char; quit:boolean; simb:set of char; smb:set of char; begin ..... with tov[i] do begin simb:=['А'..'Я','а'..'я',' ',#8]; write('Введите наименование товара: '); naimenovanie:=''; repeat if keypressed then begin ch:=readkey; if ch in simb then begin write(ch); naimenovanie:=naimenovanie+ch; end; end; until ch=#13; writeln; write('Введите страну-экспортер : '); strana_exporter:=''; repeat if keypressed then begin ch:=readkey; if ch in simb then begin write(ch); strana_exporter:=strana_exporter+ch; end; end; until ch=#13; writeln; smb:=['1'..'9','.',#8]; write('Введите дату поставки : '); data_postavki:=''; repeat if keypressed then begin ch:=readkey; if ch in simb then begin write(ch); data_postavki:=data_postavki+ch; end; end; until ch=#13; {$I-} 9:write('Введите количество товара : '); readln(kolichestvo_tovara); {$i+} if (IoResult<>0) or (kolichestvo_tovara<=0) or(kolichestvo_tovara>1000) then begin writeln('Повтори ввод количества товара !!!'); delay(500); goto 9; end else writeln; writeln('Нажмите Enter');readln; end; .... Большая просьба помочь. |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
write('Введите наименование товара: '); Понимаешь, что происходит, да? Закончил ты ввод первого слова, вошел во второй repeat. И что? Ну, не нажата клавиша, а Ch сразу же = #13, этот самый второй цикл тут же и заканчивается. Чтобы это предотвратить, надо сбросить значение Ch... |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 14:17 |