[Visual Basic] conversion fichier binaire

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