[PHP] MBF (microsoft Binary Float) -> float

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik moet een aantal 'oude' binary bestanden converteren die ooit zijn gemaakt met Microsoft Visual Basic 3.0. Hiermee werden FLOATS opgeslagen in het zgn MBF formaat.
Iemand enig idee hoe ik deze kan vertalen naar floats?

Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
is google misschien je antwoord?

http://www.clipx.net/ng/msc51/ng1c490.php
't is C, maar je hebt er vast wat aan :)

[ Voor 30% gewijzigd door BasieP op 05-05-2005 12:57 ]

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Helaas is mijn C kennis onvoldoende. Wellicht kan iemand mij op weg helpen deze C code in PHP om te zetten....:?

C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
union Converter {
      unsigned char uc[10];
      unsigned int  ui[5];
      unsigned long ul[2];
      float          f[2];
      double         d[1];
};

/* MSBINToIEEE - Converts an MSBIN floating point number */
/*               to IEEE floating point format           */
/*                                                       */
/*  Input: f - floating point number in MSBIN format     */
/* Output: Same number in IEEE format                    */

float MSBINToIEEE(float f)
{
      union Converter t;
      int sign, exp;       /* sign and exponent */

      t.f[0] = f;

      /* extract the sign & move exponent bias from 0x81 to 0x7f */

      sign = t.uc[2] / 0x80;
      exp  = (t.uc[3] - 0x81 + 0x7f) & 0xff;

      /* reassemble them in IEEE 4 byte real number format */

      t.ui[1] = (t.ui[1] & 0x7f) | (exp << 7) | (sign << 15);
      return t.f[0];
} /* End of MSBINToIEEE */

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Kom op, de syntax van PHP en C zijn vrijwel hetzelfde. Het enige wat je aan moet passen is het verwijderen van types en het vervangen van die union door een andere vorm van opslag. (Class? Losse variabelen?) Gewoon even ervoor gaan zitten. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.