Re: Reading Float Data from a binary file into ada



On Tuesday 30 January 2007 16:55, Jean-Pierre Rosen wrote:
frikk a écrit :
Hello everyone! I am having a problem that I would love some help
with.

Essentially I was given a Visual Basic program that dumps a binary
configuration file with all of the variables in a set. The variables
are each 32 bit floats, with the first 16 bits being the integer part
and the second 16 bits being a representation of the fraction (I'm not
sure if this is stanard - but its just how VB dumps the data).

Hmm... This looks like a fixed point representation, not a floating
point one.

There is the same kind of representation in the tiff format,
The "type RATIONAL" two LONGs : the first represent the numerator of the
fraction, the second the denominator.

The
binary dump is basically a copy of the way VB stores the data in
memory. I need to be able to use this data in ada. There is a C
counterpart to this that makes use of a 'union' to grab the data 1
byte (8 bits) at a time, put them into a char array of size 4, then
use a 32 bit float to reference the data. Is there somehow I can do
this in ada as well?

In general, Unchecked_Conversion is your friend when you need two
different views, at differing levels of abstraction, of the same data.

I remember doing some Unchecked_Conversion to read a proprietary tiff file
some time ago. But only to find the LONGs and then after I was just doing a
simple division to get the result.

Basically I need to be able to read in the binary data byte by byte
but store it into a 32 bit Float.

It may be helpfull to know some value in advance like a magic number.

However, if you do an unchecked_conversion to Float, it will certainly
not work, because your data don't look at all like floats!

--
Ali
.



Relevant Pages

  • Re: RAD vs. performance
    ... ints and floats into account. ... Floats are but one representation of numbers. ... dynamically typed language, you could just feed the above code through ... compiler would reject the program. ...
    (comp.lang.misc)
  • Re: Why cant I xor strings?
    ... It converts a number to an ordered set of bools, ... > possible states of the representation machinery. ... *much* less well equipped to handle the way floats bite you than someone ...
    (comp.lang.python)
  • Re: Why cant I xor strings?
    ... > IMO we have implicit subtyping of integers as vectors or column matrices ... > of bools and operations element by element and implicit re-presentation ... Abstractly, even floats have a binary representation, just as they ...
    (comp.lang.python)
  • Re: How to truncate/round-off decimal numbers?
    ... this is just a matter of representation. ... If we use floats with two decimals ... And multiplying, ...
    (comp.lang.python)
  • Re: Reading Float Data from a binary file into ada
    ... Essentially I was given a Visual Basic program that dumps a binary configuration file with all of the variables in a set. ... The variables are each 32 bit floats, with the first 16 bits being the integer part and the second 16 bits being a representation of the fraction (I'm not sure if this is stanard - but its just how VB dumps the data). ... There is a C counterpart to this that makes use of a 'union' to grab the data 1 byte at a time, put them into a char array of size 4, then use a 32 bit float to reference the data. ... Is there somehow I can do this in ada as well? ...
    (comp.lang.ada)