Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
GREA
Зарегистрирован: 14.05.2003 Сообщения: 758 Откуда: Новосибирск
|
Добавлено: Ср Сен 27 2006 14:04 Заголовок сообщения: io.h read() Ошибки при чтении |
|
|
Делаю read(in,&r,sizeof(r)); Где r - структура из 16 байт.
Иногда при чтении, указатель чтения смещается вперед на 1 байт, и в структуру пишется лажа Не могу понять, почему read читает правильно, а иногда с этим смещением.
В файле, когда случается сбой лежит
.... 0D 62 00 00 00 01 01 00 ....
Указатель чтения перед тем как вызываю read указывет на 0D
однако структура после чтения начинается с 62 (хотя в других случаях чтение правильное)
Еще перед каждым read делаю ftell(in). Это совершенно бессмысленно, однако без него вообще всякая ахинея читается откуда попало
Работа уже целый день стоит, не могу отладить эту ошибку |
|
Вернуться к началу |
|
|
Kefir
Зарегистрирован: 16.04.2005 Сообщения: 443 Откуда: Пермь
|
Добавлено: Ср Сен 27 2006 14:36 Заголовок сообщения: |
|
|
по порядку:
1. ОС
2. Среда разработки
3. Используемые библиотеки, conio я так понял...
4. Фрагменты кода открытия файла
5. Чтения
6. Всего что Вы делает с файлом
Есть подозрение, что файл вы открываете как текстовый, отсюда read некорректно реагирует на символ "0D". _________________ Самоловских Виталий aka Kefir |
|
Вернуться к началу |
|
|
GREA
Зарегистрирован: 14.05.2003 Сообщения: 758 Откуда: Новосибирск
|
Добавлено: Ср Сен 27 2006 17:27 Заголовок сообщения: |
|
|
1. ОСь XP SP2
2. Среда программирования - borland c++ 2006
3. io.h
4. Выложу завтра
5. <----||---->
6. Делаю следующее: Выборочно загружаю данные из непоследовательно расположенных участков файла. Проблемы воникают при считывании 16-байтной структуры.
Прочитал структуру, далее прочитал некоторое количество дополнительной информации. Указатель устанавливает на следующую структуру. Читаю его. Выполняется успешно. Опять пропускаю n-байтов. Указатель ровно на следующей структуре, как и в прошлый раз. И тут ррраз... И структура читается с байтовым смещением. Я уже весь бинарник излазил в HEX кодах. И отладчик загонял до смерти
P.S. Файл на бинарном чтении это точно.)) |
|
Вернуться к началу |
|
|
GREA
Зарегистрирован: 14.05.2003 Сообщения: 758 Откуда: Новосибирск
|
Добавлено: Чт Сен 28 2006 05:28 Заголовок сообщения: |
|
|
Утром на свежую голову отыскал ошибку.
Долго ржал.
Оказывается промахнулся и O_BINARY записал в последний параметр open а не в средний.
Теперь все замечательно читается.
Тема закрыта |
|
Вернуться к началу |
|
|
Kefir
Зарегистрирован: 16.04.2005 Сообщения: 443 Откуда: Пермь
|
Добавлено: Чт Сен 28 2006 06:03 Заголовок сообщения: |
|
|
Об чем я и говорил, файл открывался как текстовый... _________________ Самоловских Виталий aka Kefir |
|
Вернуться к началу |
|
|
|