![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 21.04.2010
Сообщений: 125
|
![]()
При чтениы любого файла постоянно выдает "I/O 998 Error"
Код:
|
![]() |
![]() |
![]() |
#2 |
Баламучу слегка...
Участник клуба
Регистрация: 01.11.2006
Сообщений: 1,585
|
![]()
Поставь {$I-}
Ну или хотя бы пиши BlockRead(f1,buf1[0],x1). Не забывай, что динамический массив это все-таки указатель. Кстати, тут еще один момент. Размер чара не всегда равен одному байту. В Д2010, например, он уже 2 байта. В данном случае это не критично, но перерасход памяти обеспечен. Последний раз редактировалось Баламут; 31.08.2010 в 01:55. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
Из гугла забанили? I/O 988 - это ERROR_NOACCESS.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 21.04.2010
Сообщений: 125
|
![]() |
![]() |
![]() |
![]() |
#5 |
Баламучу слегка...
Участник клуба
Регистрация: 01.11.2006
Сообщений: 1,585
|
![]()
Надеюсь это не в мой огород камень?
![]() Последний раз редактировалось Баламут; 31.08.2010 в 14:30. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 21.04.2010
Сообщений: 125
|
![]()
ну поставлю и чо? прога не вылетыт но и не прочтет блок
до нормальных претензый не имею, но не понял почему buf1[0]? Последний раз редактировалось Stilet; 31.08.2010 в 14:43. |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
Есть тысяча и одна причина.
exe-файл запущен? Vista и выше и файл в Program Files или аналогичной папке? read-only атрибут? и т.д. Про FileMode или TFileStream раньше не слышали? P.S. Между прочим, это всё указано в ссылках гугла.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
![]() |
#8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Buf - это переменка, содержащая указатель на массив, а тебе нужно передать не указатель на массив а адрес на начало массива. Фактически blockread считает что по адресу, где расположена buf находится массив, в то время как там всего лишь находится адрес на массив, потому и ошибка. Если бы ты писал так: Код:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#9 |
Баламучу слегка...
Участник клуба
Регистрация: 01.11.2006
Сообщений: 1,585
|
![]()
Потому, что динамический массив есть по сути своей указатель. Ф-ия BlockRead нуждается в адресе начала блока памяти, в который она сможет писать данные. Адрес этот и есть buf1[0]. Если же мы будем писать по адресу buf1, то быстренько попадем в область, писать в которую низя! Отсюда и NOACCESS. В общем почитай про указатели. С моим корявым стилем изложения нужно подальше от педагогики держаться
![]() ЗЫ. И куда я лезу? Стилет же на форуме... За ним разве успеешь?.. |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
Гы, спросонья мне показалось, что ошибка вылетает на другой строке.
Тогда, да, проблема в том, что buf1 - это не данные массива. Данные массива - это buf1[0]. Вникать.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка "Asynchronous socket error 10053" | Neexuus | Работа с сетью в Delphi | 4 | 30.11.2010 14:02 |
strcpy(str, strlen(""), "") - error! | nazavrik | Общие вопросы C/C++ | 2 | 09.02.2010 17:21 |
1>Проект : error PRJ0003 : Ошибка при создании "cl.exe". | ben95 | Помощь студентам | 1 | 14.05.2009 17:10 |
Проект : error PRJ0003 : Ошибка при создании "cl.exe". | ben95 | Общие вопросы C/C++ | 0 | 14.05.2009 16:50 |
ОШИБКА:"error BGI graphics not ..." | Panterka | Помощь студентам | 7 | 12.12.2007 17:06 |