Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глюк при чтении структуры из файла 
:(
    Опции темы
AlexNor
Дата 23.4.2004, 09:18 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Допустим есть такая структура:
struct AA
{
WORD w1;
WORD w2;
BYTE b1;
BYTE b2;
int i1;
BYTE b3;
...
}

при чтении инфы из файла в такую структуру значение i1 (и все после неё переменные) отображают неверные значения.

Если читаю из файла след. байты: 0x01;0x00;0x02;0x00;0x03;0x04;0x38;0x00;0x00;0x00;0x20;0x00;0x05...
то получаю:
w1 = 0x01;
w2 = 0x02;
b1 = 0x03;
b2 = 0x04;
i1 = 0x00200000; !!!!!<- выравнивание происходит???
b3 = 0x05;

Я не пойму это из-за выравнивания или из-за чего?
Как от этого можно избавится?
Что бы происходило нормальное чтение из файла в структуру.
  Вверх
achmed
Дата 23.4.2004, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 12.4.2004

Репутация: нет
Всего: нет



не забывайте стаать флаг - бинарный файл

PM MAIL   Вверх
AlexNor
Дата 23.4.2004, 09:42 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Не понял?

А что это за флаг и где он флаг выставляется?

( Я открываю файл API функцией CreateFile(...) )
  Вверх
bel_nikita
Дата 23.4.2004, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Попробуй так:
Код
#pragma pack(push, _Aligment_FileStruct, 1)
struct AA
{
WORD w1;
WORD w2;
BYTE b1;
BYTE b2;
int i1;
BYTE b3;
};
#pragma pack(pop, _Aligment_FileStruct)



--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
AlexNor
Дата 23.4.2004, 09:51 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











bel_nikita, щас попробую...
  Вверх
AlexNor
Дата 23.4.2004, 10:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











bel_nikita,
пасибо!!!
получилось!
а откуда ты знаеш об этой комманде, где вообще можно надыбать
описаие таких команд.
  Вверх
bel_nikita
Дата 23.4.2004, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Цитата
а откуда ты знаеш об этой комманде, где вообще можно надыбать
описаие таких команд.
Из Библии дяди Билла wink.gif MSDN называется biggrin.gif
http://msdn.microsoft.com/


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
AlexNor
Дата 23.4.2004, 10:09 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











MSDN большоооой. smile.gif


  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0460 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.