Структура

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Kolobuk
Обычный пользователь
Обычный пользователь
 
Сообщения: 61
Зарегистрирован: 24.10.2006 (Вт) 20:03

Структура

Сообщение Kolobuk » 05.11.2008 (Ср) 6:25

Доброго времени суток!

Имеется структура:
Код: Выделить всё
    Structure X
        Dim FLAG As Short 'флаг
        Dim DL_BLOK As Integer 'длина всего блока
        Dim DL_IM As Integer ' длина имени
        Dim IMYA As String 'имя
    End Structure


Считываю с файла:
Код: Выделить всё
        FileGet(1, STRUC.DL_IM, 7)
        STRUC.IMYA = Space(STRUC.DL_IM)
        FileGet(1, STRUC, 1)

        Debug.Print(STRUC.FLAG)
        Debug.Print(STRUC.DL_BLOK)
        Debug.Print(STRUC.DL_IM)
        Debug.Print(STRUC.IMYA)


STRUC.IMYA находится на 11-м байте от начала файла.
Debug же, от чего-то, выдаёт с 13-го :?

В чем же дело?

P.S.: Как же было просто и удобно на VB6 :(

Спасибо!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Структура

Сообщение Viper » 05.11.2008 (Ср) 9:48

Все дело в выравнивании - поле DL_BLOK начинается не с 3-го байта, а с 5-го. При желании можно при помощи атрибутов сделать нужное выравнивание. На эту тему есть статья на основном сайте.
Весь мир матрица, а мы в нем потоки байтов!

Kolobuk
Обычный пользователь
Обычный пользователь
 
Сообщения: 61
Зарегистрирован: 24.10.2006 (Вт) 20:03

Re: Структура

Сообщение Kolobuk » 05.11.2008 (Ср) 11:46

Спасибо!

Если кому попадется эта же проблема, статья тут.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 83

    TopList  
cron