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

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

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

 
 Ответить  Открыть новую тему 
> Обработка ошибок ввода вывода, Не фильтруются вводимые символы
m0lex
сообщение 12.12.2006 13:57
Сообщение #1





Группа: Пользователи
Сообщений: 9
Пол: Мужской

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


Вообщем такая проблема... Программа запрашивает у пользователя ввести переменную integer (Кол-во записей в фаиле) При вводе не численного значения прога вылетает, а мне не надо что бы так было. Пробовал с {$I-}{$I+} ничего не выходит... подскажите пожалуста ошибку.
Вот в этих 2-ух процедурах:


Procedure nov;
Var
j:integer;
a:integer;
Begin

Name_file;
assign(trains,name);
rewrite(trains);
write('Введите количество пунктов назначения: ');
readln(a);
for j:=1 to a do Vvod;
close(trains);
writeln;

end;

Procedure dobav;
Var
j:integer;
k:integer;
Begin

Name_file;
assign(trains,name);
{$I-}
reset(trains);
{$I+}
if ioresult=0 then
begin
seek(trains,FileSize(trains));
write('Введите количество записей: ');
readln(k);
for j:=1 to k do Vvod;
writeln('В новом фаиле ',FileSize(trains),' записей');
close(trains);
end
else writeln('Фаил '+name+' несуществует');
writeln;
end;




Вот весь исходник: molex.hotbox.ru/PROG.PAS
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 12.12.2006 14:05
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

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


Вводи не число, а строку, потом проверяй - является ли введенное числом (функция val).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 12.12.2006 14:38
Сообщение #3


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


или оформи так же, как открытие файла...


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
m0lex
сообщение 12.12.2006 14:40
Сообщение #4





Группа: Пользователи
Сообщений: 9
Пол: Мужской

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


Ок... спасибо, щас попробую, а есть еще какиенибудь способы, просто спросить могут...

=>или оформи так же, как открытие файла...
а это как?

Сообщение отредактировано: m0lex - 12.12.2006 14:43
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
m0lex
сообщение 12.12.2006 15:06
Сообщение #5





Группа: Пользователи
Сообщений: 9
Пол: Мужской

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


Что то с val никак не могу разобраться( не могли бы вы показать на одной из моих процедур...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 12.12.2006 15:14
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

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


Типа того,
repeat
readln (s);
val (s,a,code);
until code=0;

т.е. если code=0, то все ок, иначе повтор ввода.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
m0lex
сообщение 12.12.2006 15:26
Сообщение #7





Группа: Пользователи
Сообщений: 9
Пол: Мужской

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


Огромное спасибо!!! smile.gif разобрался!!!
завтра здача курсовой... надеюсь все будет хорошо!
спасибо мисс_граффити и Malice!
тема закрыта...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 18.07.2025 9:52
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"