Rechercher : dans
Par :

[Visual Basic] conversion fichier binaire

Dernière réponse le 27 mar 2009 à 09:17:24 tassad, le 25 mai 2007 à 12:39:27 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [Visual Basic] conversion fichier binaire » dans :
Excel - Convertir fichier(s) CSV / XLS VoirComme dit dans le titre, cette application convertit des fichiers CSV en fichiers XLS N’est pas nécessaire pour Excel 2007, ce dernier faisant la conversion automatiquement La conversion n’ayant pas de mise en forme, en cas de modification...
Parser un fichier binaire en PHP VoirSupposons que vous ayez enregistré des données binaires dans un fichier, c'est-à-dire un enregistrement brut qui n'est pas traduit en texte. C'est une chose que l'on fait couramment avec certains langages de bas niveau comme le C ou le...
Télécharger Visual Basic 6 Runtime (VB6 DLL) VoirLe Runtime Visual Basic 6 contient l'ensemble des librairies (DLL) nécessaires pour exécuter des programmes écrits en langage Visual Basic 6.0. Il contient notamment les DLL suivantes :...
Introduction à Visual Basic VoirPrésentation de Visual Basic Visual Basic est un outil développé par Microsoft pour développer facilement des applications fonctionnant sous Microsoft Windows ©. Visual Basic est, comme son nom l'indique, un outil visuel permettant de créer...

1

choco000078, le 25 mai 2007 à 12:43:05

Montre nous ton code, on verra ce qu'on peut faire ;)

Répondre à choco000078

4

 abs13, le 27 mar 2009 à 09:17:24

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

Répondre à abs13

2

tassad, le 25 mai 2007 à 14:18:03
  • +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

Répondre à tassad

3

IceBerg, le 18 mar 2009 à 20:29:42

Replace l'expression : open... for INPUT par open ... for BINARRY
et sa doit marcher ( si le reste de ton code est correcte )

Répondre à IceBerg
Collection CommentÇaMarche.net