Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

io.h read() Ошибки при чтении

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
GREA



Зарегистрирован: 14.05.2003
Сообщения: 758
Откуда: Новосибирск

СообщениеДобавлено: Ср Сен 27 2006 14:04    Заголовок сообщения: io.h read() Ошибки при чтении Ответить с цитатой

Делаю read(in,&r,sizeof(r)); Где r - структура из 16 байт.
Иногда при чтении, указатель чтения смещается вперед на 1 байт, и в структуру пишется лажа Sad Не могу понять, почему read читает правильно, а иногда с этим смещением.
В файле, когда случается сбой лежит
.... 0D 62 00 00 00 01 01 00 ....
Указатель чтения перед тем как вызываю read указывет на 0D
однако структура после чтения начинается с 62 (хотя в других случаях чтение правильное)

Еще перед каждым read делаю ftell(in). Это совершенно бессмысленно, однако без него вообще всякая ахинея читается откуда попало Sad

Работа уже целый день стоит, не могу отладить эту ошибку Crying or Very sad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kefir



Зарегистрирован: 16.04.2005
Сообщения: 443
Откуда: Пермь

СообщениеДобавлено: Ср Сен 27 2006 14:36    Заголовок сообщения: Ответить с цитатой

по порядку:

1. ОС
2. Среда разработки
3. Используемые библиотеки, conio я так понял...
4. Фрагменты кода открытия файла
5. Чтения
6. Всего что Вы делает с файлом

Есть подозрение, что файл вы открываете как текстовый, отсюда read некорректно реагирует на символ "0D".
_________________
Самоловских Виталий aka Kefir
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
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 кодах. И отладчик загонял до смерти Smile

P.S. Файл на бинарном чтении это точно.))
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
GREA



Зарегистрирован: 14.05.2003
Сообщения: 758
Откуда: Новосибирск

СообщениеДобавлено: Чт Сен 28 2006 05:28    Заголовок сообщения: Ответить с цитатой

Утром на свежую голову отыскал ошибку.
Долго ржал.
Оказывается промахнулся и O_BINARY записал в последний параметр open а не в средний.
Теперь все замечательно читается.
Тема закрыта Laughing
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kefir



Зарегистрирован: 16.04.2005
Сообщения: 443
Откуда: Пермь

СообщениеДобавлено: Чт Сен 28 2006 06:03    Заголовок сообщения: Ответить с цитатой

Об чем я и говорил, файл открывался как текстовый...
_________________
Самоловских Виталий aka Kefir
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...