[Visual Basic] conversion fichier binaire

tassad -  
 abs13 -
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
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. tassad
     
    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
  2. choco000078
     
    Montre nous ton code, on verra ce qu'on peut faire ;)
    0
    1. abs13
       
      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
  3. IceBerg
     
    replace l'expression : open... for INPUT par open ... for BINARRY
    et sa doit marcher ( si le reste de ton code est correcte )
    0