В заголовке вы говорите о переменной MyVar
, но в коде нет такой переменной.Для дальнейшего использования, пожалуйста, внимательно прочитайте ваш вопрос перед публикацией.
Вы объявили динамический массив:
S: array of String[14];
, то есть массив из 14 символьных строк (коротких строк).Но вы никогда не устанавливали длину этого массива, и поэтому он вообще не может содержать никаких строк.
Используйте procedure SetLength(var S: <string or dynamic array>; NewLength: Integer);
, чтобы выделить место для элементов в массиве.
Поскольку вы этого не делаетеЗная (я предполагаю), сколько фильмов может быть в файле, вы должны сначала выделить некоторое количество, а затем быть готовым расширить массив (с новым вызовом SetLength()
), если массив заполняется до того, как все фильмы будутчитать из файла.Например, инициализируйте (перед циклом while) пространство для 10 фильмов:
SetLength(S, 10);
, а затем в цикле while, например, перед ReadLn()
,
if i > (Length(S)-1) then
SetLength(S, Length(S)+10);
Еще один комментарий заключается в том, что пользователю не предлагается ни одного приглашения при запросе выбора, но, возможно, это все еще в стадии разработки; -)