Помогите с типом Integer, конвертация...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Kurt
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 105
Зарегистрирован: 05.01.2003 (Вс) 23:25

Помогите с типом Integer, конвертация...

Сообщение Kurt » 25.08.2003 (Пн) 16:00

Народ!
Плиз хелп! Срочно!
Мне надо считать из файла переменную типа Integer и дальше с ней работать (складывать, выводить на экран...)
Но проблема не в этом. :)
Дело в том, что переменная в файле (4 байт) хранится в большом порядке! (Т.е. для Sun & Motorola, not PC Intel).
Т.е. последовательность байт наоборот - первый быйт в Intel = последний байт в Motorola.
Мне нужно все сделать как в Intel... или VB может работать с такими данными?
Помогите, срочно надо!
Для корабля, который не знает куда плыть, нет попутного ветра...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 26.08.2003 (Вт) 10:08

4 байта это вообще-то Long.
Считывай, переворачивай слова, делай арифметические операции, переворачивай обратно.
Переворачивание:
Код: Выделить всё
'надеюсь, ошибок нет.
Function SwapWord(ByVal Value As Long) As Long
Dim l As Long, w As Long
Const wc As Long = 65536 '&h00010000&
l = Value And &h0000FFFF&
w = (Value And &hFFFF0000&) \ wc
SwapWord = (l * wc) Or w 'позор мне, вначале я написал And :)
End Function


Если именно Integer (два байта), то делаешь тоже самое, только немного дорабатываешь процедуру.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: Yandex-бот и гости: 3

    TopList