Hvis du læser i binær mode, så kan du bruge
Dim lMyLong as long
Get lFileHandle,lFilePos,lmyLong
Så konverterer den selv little endian, og det hele
Elers må beregningen jo være byte4 + byte3 * 2 ^ 8 + byte2 * 2 ^16 + byte1 *
2 ^ 24
Og der skal du huske at bruge longs, da den ellers giver overflow.
Husk også at du i VB ikke kan indlæse en "unsigned long" dvs. hvor den føste
bit ikke bruges til at angive negative tal.
Mvh. Rayman
"Helge Bjørkhaug" <helgesnutten@techie.online.no.invalid> wrote in message
news:4n3t6uoa9ff8u63eo9vpgq84utqk3v8bkk@4ax.com...
> On Sat, 16 Feb 2002 01:00:25 +0100, "Jens Rex Bræmhøj" <nospam@fuckup.dk>
> wrote:
>
> >Jeg har en fil som jeg gerne vil læse de 4 første bytes fra. Kan se med
> >UltraEdit at disse bytes er "FF FB 90 4C". Hvordan kan jeg læse en fil i
VB
> >så jeg får dette output? Lige nu siger den bare "ÿû?L". Og hvad med
binært?
> >(11111111111110111001000001001100).
> >
> >Altså, det er ikke så meget det at læse selve filen, det har jeg
efterhånden
> >fundet ud af... det er mere formatet af outputtet jeg gerne vil ændre.
> >
> >Har rodet rundt på MSDN, men jeg kunne ikke finde noget klart og tydeligt
om
> >det. Er ikke super stærk i det her.
>
> Ingen elegant løsning, men....
>
> Private byte1 As Byte
> Private byte2 As Byte
> Private byte3 As Byte
> Private byte4 As Byte
> Private header As String
> Private Function Hex2Bin(ByVal sHex As String) As String
>
> Dim i As Integer
> Dim j As Integer
> Dim nDec As Double
> Const HexChar As String = "0123456789ABCDEF"
>
> For i = 1 To Len(sHex)
> nDec = InStr(1, HexChar, Mid(sHex, i, 1)) - 1
>
> For j = 3 To 0 Step -1
> Hex2Bin = Hex2Bin & nDec \ 2 ^ j
> nDec = nDec Mod 2 ^ j
> Next j
>
> Next i
>
> i = InStr(1, Hex2Bin, "1")
> If i <> 0 Then Hex2Bin = Mid(Hex2Bin, i)
> End Function
> Private Sub Form_Load()
> Dim myfile
> myfile = FreeFile
> Open "d:\clock.exe" For Binary Access Read As #myfile
> Get #myfile, , byte1
> Get #myfile, , byte2
> Get #myfile, , byte3
> Get #myfile, , byte4
> header = Hex$(byte1) & Hex$(byte2) & Hex$(byte3) & Hex$(byte4)
> MsgBox header
> MsgBox Hex2Bin(header)
> Close #myfile
> End Sub
>
> --
> Snutten
> Fjern helge og .invalid fra mailadressen før du svarer via mail.