IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

conversion Hexadecimal Binaire


Sujet :

VB 6 et antérieur

  1. #1
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Par défaut conversion Hexadecimal Binaire
    Je veux savoir comment faire une fonction qui transforme une chaine de caractères hexadécimaux contenu dans un fichier texte enregistrer sous c: (le fichier nommé FichierHexa.Txt ) en caractères binaires avec Visual Basic VB.6
    Merci

  2. #2
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    peux tu préciser ce que tu entends par caractères binaires ?
    convertir "3C" (hexa) en "111100" (binaire) par exemple ?

  3. #3
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Par défaut
    oui c ça

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par minola Voir le message
    oui c ça
    tu pourrai pas en dire plus sur ton probléme...? c'est quoi ces suites de chiffres hexa..

    voir
    Comment effectuer des conversions vers le Décimal, l'Hexadécimal ou le Binaire ?

  5. #5
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Par défaut
    Bonjour bbil

    J'ai une chaîne de caractères hexadecimal enregistrée sous c:\FichierHexad.Txt
    Mon travail consiste à :
    1. lire le fichier texte (j'utilise la language VB.6)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Open "c:\FichierHexad.Txt" For Input Access Read As #1
    ......
    Close #1
    J'ai fait cette étape
    1. Convertir cette chaîne (qui se trouve sous c en binaire puis enregistrer le résultat dans un 2ème fichier texte nommé FichierBinaire.

    Donc j'ai besoin de votre aide dans cette 2ème étape

    Merci

  6. #6
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    ton problème est il juste un problème de programmation ou aussi un problème d'algorithme ? En clair sais tu "traduire à la main" un nombre hexadécimal en un nombre binaire ?

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Une solution sans utiliser le code ascii

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Function HexToBin(NombreHex As String) As String
    Dim tHex, tBin
    Dim i As Integer, j As Integer
    Dim Binaire As String
    Dim Trouve As Boolean
     
    Binaire = ""
    NombreHex = UCase(NombreHex)
    tHex = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F")
    tBin = Array("0000", "0001", "0010", "0011", "0100", "0101", "0110", _
         "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111")
     
    For i = 1 To Len(NombreHex)
        Trouve = False
        For j = 0 To 15
            If tHex(j) = Mid(NombreHex, i, 1) Then
                Binaire = Binaire & tBin(j)
                Trouve = True
                Exit For
            End If
        Next j
        If Not Trouve Then HexToBin = "": Exit Function
    Next i
    HexToBin = Binaire
    End Function
    qui renvoie une chaine vide si la chaine passée ne représente pas un nombre en hexa
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    en fait le truc .. c'est qu'il va falloir attendre que minola, ce décide à tout nous dire ... ce qu'il entend par "caractères binaires avec Visual Basic VB.6" , je suis pas vraiment sur qu'il attende en sortie un chaîne composée de 0 et de 1 ..., d'ailleurs si c'était le cas mon lien vers la un peu plus haut aurai suffit amplement ...

    alors minola .. montre nous des exemples de contenu de tes 2 fichiers...!

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par LeForestier Voir le message
    Ont a beau être modérateur je trouve désobligeant de proposer des variantes aléatoirs sur les propositions précédantes.
    Edit : en disant aléatoire je dirait plutôt en copiant.
    [troll]
    Tu sais, en ayant regardé la solution proposée dans la faq, on pourrait aussi dire que je l'ai copiée, car elle repose sur le même principe.

    Si cela doit t'offenser, je te demanderai de regarder attentivement le forum et tu t'apercevras que, pour peu que la question initiale soit un peu technique, les ajouts des uns et des autres sont, à de très rares exceptions près, des compléments d'infos à des réponses déjà données. Nul n'a la paternité d'un algo, me semble-t'il, ni, et surtout, de toutes ses variantes possibles. Outre le fait que ta fonction, telle quelle, n'est utilisable qu'en déclarant i (plantage à la compilation), et qu'en saisissant une valeur dans un inputbox (ce qui amènera presqu'inévitablement une question de minola), elle ne teste pas la validité de la saisie, et plante si la chaine saisie ne représente pas une valeur hexadécimale.

    Si j'ai donné cette solution, c'est parce, pour moi, utiliser le code ascii est un moyen détourné, et que cette façon de faire ne repose pas sur la méthode que l'on utiliserait à la main. Elle est donc plus difficile à appréhender par un néophyte. Mais, pour moi, la plus limpide est celle de la faq, qui établit la correspondance claire entre les valeurs hexa et binaires.

    J'ose croire qu'on ne va pas établir des droits d'auteur sur les forums...[/troll]
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion hexadecimal->binaire et vice versa
    Par Latimer dans le forum Interfaces Graphiques en Java
    Réponses: 8
    Dernier message: 17/05/2014, 13h41
  2. conversion hexadecimal -->binaire
    Par oeil de lynx dans le forum C++
    Réponses: 4
    Dernier message: 29/03/2008, 18h58
  3. Conversion Hexadecimal to binaire
    Par marco80 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 02/05/2007, 11h35
  4. conversion hexadecimal en ansistring
    Par xamxeladog dans le forum C++Builder
    Réponses: 4
    Dernier message: 28/10/2004, 12h50
  5. conversion ip (binaire - decimale)
    Par slim dans le forum Développement
    Réponses: 5
    Dernier message: 13/08/2004, 16h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo