Доброе время суток, уважаемые эксперты! У меня возникла проблема с чтением файла в динамический массив.: Type a = record x:smallint; y:smallint; end; mas=array of a; Var Mymas:mas; Затем задаю размер массива с помощью процедуры SetLength. При попытке прочитать файл выдается ошибка I/O error 87 (или 85? простите забыл). Если вместо mas=array of a; написать mas=array[1..16000] of a; то все работает. Подскажите, пожалуйста, что я делаю не правильно. Заранее благодарен! Vitally.
Приветствую Вас, Vitally! Ты, по-моему, сам ответил на свой вопрос. Не указываешь размер массива, поэтому память под твой массив не выделяется, и когда ты пытаешься обращаться к несуществующей области выдается ошибка ввода-выводы (IO).
Ответ отправлен: 01.07.2002, 08:16 Отправитель: Vladimir Отвечает Артём Шегеда
Приветствую Вас, Vitally! В качестве переменной для чтения из файла используй не имя динамического массива mas (который при внимательном изучении массивом не является), а первый элемент из него - mas[0]. Если функции BlockRead передать просто mas, то чтение будет идти в структуру variant, не не в облать памяти, которую ты выделил по SetLength
Приложение: Ответ отправлен: 01.07.2002, 14:36 Отправитель: Артём Шегеда
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.