Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Бинарные файлы
Форум программистов > Системное программирование > Visual Basic
SERGMov
Проблема такова: есть бинарные файлы созданные прогой на LabView, нужно их читать прогой на VB. Облазил кучу форумов, перепробовал кучу вариантов, но ничего путного так и не получил - то пример реализовать не получается под свои нужды, то получается ерунда. Пробовал еще на LabView написать тестовую прогу, чтоб посмотреть как она пишет числа в бинарные файлы - результаты запутали еще больше.
Теперь конкретнее - есть описание формата данных в файлах и есть файл, из которого известны кой какие значения:
16 байт заголовка должны содержать 3 числа:
64000 - в формате Single (4 байта)
16 - в формате U32 (4 байта)
53340 - в формате Double (8 байт)
в оригинальном файле это выглядит так:
47 7A 00 00
00 00 00 10
41 E8 2F EB B5 80 00 00
тестовая LabView-шная прога записывает эти числа так:
40 EF 40 00 00 00 00 00
40 30 00 00 00 00 00 00
40 EA 0B 80 00 00 00 00
При попытках зачитать все это безобразие под VB естественно никаких правильных десятичных чисел не получается wub.gif
Помог бы кто разобраться
Заранее всем спасибо
Gamlet
biggrin.gif biggrin.gif biggrin.gif
Цитата
40 EF 40 00 00 00 00 00
40 30 00 00 00 00 00 00
40 EA 0B 80 00 00 00 00

Это, если я еще не совсем ивт забыл-шестнадцатиричные файлы, но не как не бинарные. Это две разные вещи.
SERGMov
файлы бинарные, а то что преведено - получается просмотром по F3 в тотал-командере например
Tanya
Возможно это имеется ввиду?

Dim s As Single, d As Double, L As Long
Open "e:\1.txt" For Binary As #1
Get #1, , s
Get #1, , L
Get #1, , d
Close #1
MsgBox s & vbCrLf & L & vbCrLf & d

здесь второе значение типа long потому как не очень поняла, что за U32 :-)))))
поэтому подставила просто тип размером 4 байт
Jumpy
хым...
00 00 00 10 = 16, никаких вопросов

остальные (сингл и дубль) тож записаны верно.... но чтоб это понять - пришлось изучить это

http://khpi-iip.mipk.kharkiv.edu/library/d...book/prt02.html

ваще сложная штука... нужно как то попроще... но суть такая:
47 7A 00 00
00 00 00 10
41 E8 2F EB B5 80 00 00

это есть действительно 3 вышеназванных числа в соотвествующих им типах данных, а следовательно можно прочесть васьком (ток не спрашивайте как, мне того мануала хватит на седня smile.gif)) )
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2008 IPS, Inc.