[Visual Basic] conversion fichier binaire

Fermé
tassad - 25 mai 2007 à 12:39
 abs13 - 27 mars 2009 à 09:17
Bonjour,

je souhaite convertir un fichier binaire (extension: .ogf) en fichier excel. J'ai trouvé une fonction qui me permet de convertir les octets lus et elle marche.
Mon problème c'est que lorsque je lis mon fichier(par paquet de 32 bits) et que je lui demande de m'afficher la valeur correspondante il me retourne tout le temps: 0 alors je ne comprends pas la source du problème.

SVP est-ce que vous pouvez m'aider et merci d'avance pour le coup de main
A voir également:

3 réponses

Comme c'est sympa la vitesse à laquelle vous m'avez répondu. Comme vous me l'avez demandé voici le code que j'ai écrit(soyez indulgent si c'est n'importe quoi en fait c'est une mission ponctuelle je ne programme pas en VB en principe):

// Macro lisant le fichier et appellant la fonction de conversion des octets
Private Sub Conversion()
   
    Dim f As Integer
    Dim ligne As Byte
    Dim test As String
 
   
   
    f = FreeFile
    Open "C:\VBACyril\fich1.ogf" For Input As #f
        While Not EOF(f)
        test = CStr(ligne)
            Line Input #f, test1
            Debug.Print "le string : " & test
            
            nombre = BinaryToDecimal(test, 32, True)
            Debug.Print "conversion : " & nombre
        Wend
    Close #f
   
End Sub

// Voici la fonction de conversion


Public Function BinaryToDecimal(Binary As String, NbBits As Byte, Signed As Boolean) As Long
    Dim i As Byte
    BinaryToDecimal = 0
    If NbBits <= 1 Or NbBits > 32 Then Exit Function
    If Len(Binary) > NbBits Or Len(Binary) > 32 Then Exit Function
    Binary = Right("00000000000000000000000000000000" & Binary, NbBits)
    If Signed = False Then
        For i = 0 To Len(Binary) - 1
            BinaryToDecimal = BinaryToDecimal + Val(Mid(Binary, Len(Binary) - i, 1)) * 2 ^ i
        Next
    Else
        For i = 0 To Len(Binary) - 2
            BinaryToDecimal = BinaryToDecimal + Val(Mid(Binary, Len(Binary) - i, 1)) * 2 ^ i
        Next i
        If Left(Binary, 1) = "1" Then
            BinaryToDecimal = -((2 ^ (NbBits - 1)) - BinaryToDecimal)
        End If
    End If
End Function
1
choco000078
25 mai 2007 à 12:43
Montre nous ton code, on verra ce qu'on peut faire ;)
0
j'ai crée un fichier excel, où j'ai mis les détails du personnel nom, prénom , daté lieu de naissance,...etc), ce que je veut faire c'est d'ajouté de plus possible je veut dire même coté salaire de poste et retenus de sécurité social.
merci d'avance
0
replace l'expression : open... for INPUT par open ... for BINARRY
et sa doit marcher ( si le reste de ton code est correcte )
0