Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Написание игр _ Pascal. Ошибка в программе. Exitcode = 201.

Автор: SaheR 27.08.2013 0:32

Здравствуйте, уважаемые программисты, администраторы, пользователи и т.д.
Суть программы: меню для игры.
Столкнулся с Exitcod'ом 201. Вылет происходит при использовании цикла чтения из текстового файла и присваивания строк файла массиву.
Что-то я делаю явно не так, вопрос - что?
Собственно, ниже код. Прошу прощения, если форматирование текста кода не является удобночитаемым.
Пишу на Free Pascal, желательно, чтобы программа компилировалась и на Borland Pascal 7.0.
Благодарю за внимание.

Спойлер (Показать/Скрыть)

Автор: Ромаха 28.08.2013 12:47

Добрый день.
Для начала стоит освежить знания о Run-time errors.
А точнее вспомнить что ж за зверь такой 201 и с чем его едят..
201 Range check error
If you compiled your program with range checking on, then you can get this error in the following cases:
An array was accessed with an index outside its declared range.
Trying to assign a value to a variable outside its range (for instance an enumerated type).

То есть выход за пределы.
Начать нужно с того, что или Вы даете нам какой-нить уровень (чтобы не было exitcode = 2). Или Вы пошагово пытаетесь выйти на ошибку..

Удачи! smile.gif

Автор: SaheR 28.08.2013 18:52

Цитата(Ромаха @ 28.08.2013 11:47) *

Добрый день.
Для начала стоит освежить знания о Run-time errors.
А точнее вспомнить что ж за зверь такой 201 и с чем его едят..
201 Range check error
If you compiled your program with range checking on, then you can get this error in the following cases:
An array was accessed with an index outside its declared range.
Trying to assign a value to a variable outside its range (for instance an enumerated type).

То есть выход за пределы.
Начать нужно с того, что или Вы даете нам какой-нить уровень (чтобы не было exitcode = 2). Или Вы пошагово пытаетесь выйти на ошибку..

Удачи! smile.gif


Спасибо за напоминание, но я написал сюда уже от беспомощности т.к. и не нашёл, где происходит выход за пределы массива.
Файл level.txt должен содержать просто названия уровней, которые уже в будущем будут загружаться из одноимённых файлов.
Собственно, из-за
gotoxy(7, i*2);

в этом файле должно быть не более 12 строк. На данный момент, у меня в этом файле находится всего четыре строчки, в каждой по одному слову(если нужно, уточню - в английской раскладке).
Когда впервые с этой ошибкою встретился в данном коде, то даже массив arrlevels сделал с индексами от 1 до 150.
Благодарю за пожелание удачи :3

Автор: SaheR 28.08.2013 19:19

Всё, ошибку свою нашёл. Вместо readln, при чтении с файла, использовал read.