IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Прерывание цикла
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Женский
Реальное имя: АнЯ

Репутация: -  0  +


Подскажите еще такую вещь, пожалуйста). Как мне прервать процедуру или цикл не выходя из программы. Halt не подходит. А exit - не помогает. nea.gif

Сообщение отредактировано: -=АнЮтА=- -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Break (для цикла), или Exit (для процедуры) обязано работать... Показывай, как пробовала...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Женский
Реальное имя: АнЯ

Репутация: -  0  +


procedure passw;
begin
writeln('Для продолжения нажмите Enter или для выхода нажмите Esc');
q:=readkey;
if q=#27 then exit ;
.....

end;

Примерно вот так) blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






И что? Не работает? Как ты это определила?

(просто по приведенному фрагменту я ничего не могу сказать, я не знаю, ни ОТКУДА вызывается процедура Passw, ни что ДАЛЬШЕ в ней происходит, при нажатии Enter-а)...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Женский
Реальное имя: АнЯ

Репутация: -  0  +


 procedure passw;
begin
writeln('Для продолжения нажмите Enter или для выхода нажмите Esc');
q:=readkey;
if q=#27 then exit ;
writeln('Введите пароль');
end;



Процедура вызывается в программе. Хочу, чтоб если нажат Esc - процедура завершала работу. А если не нажат - то просит ввести пароль.

Добавлено через 2 мин.
Если нажимаю Esc - она все равно просит пароль(((
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






У меня не просит (если работает ТОЛЬКО этот код)... Я ж тебе говорю, совсем нет уверенности, что, например, в буфере клавиатуры что-нибудь не осталось с предыдущих вводов данных (если так - то в переменную q будет читаться то, что осталось в буфере, и, естественно, это будет не код Esc, и будет запрос пароля...).

В крайнем случае - добавляй перед выводом сообщения очистку буфера:
while keypressed do readkey;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Женский
Реальное имя: АнЯ

Репутация: -  0  +


Спасибо) Сейчас попробую)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 1.12.2020 18:19
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name