Бинарные файлы

  • Автор темы SERGMov
  • Дата начала
S

SERGMov

#1
Проблема такова: есть бинарные файлы созданные прогой на 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 естественно никаких правильных десятичных чисел не получается :)
Помог бы кто разобраться
Заранее всем спасибо
 
S

SERGMov

#3
файлы бинарные, а то что преведено - получается просмотром по F3 в тотал-командере например
 
T

Tanya

#4
Возможно это имеется ввиду?

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 байт
 
J

Jumpy

#5
хым...
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 вышеназванных числа в соотвествующих им типах данных, а следовательно можно прочесть васьком (ток не спрашивайте как, мне того мануала хватит на седня :))) )