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








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
peux tu préciser ce que tu entends par caractères binaires ?
convertir "3C" (hexa) en "111100" (binaire) par exemple ?








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 ?
![]()








Bonjour bbil
J'ai une chaîne de caractères hexadecimal enregistrée sous c:\FichierHexad.Txt
Mon travail consiste à :
- lire le fichier texte (j'utilise la language VB.6)
J'ai fait cette étape
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
- 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
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 ?
Une solution sans utiliser le code ascii
qui renvoie une chaine vide si la chaine passée ne représente pas un nombre en hexa
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
"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...
---------------
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 laun peu plus haut aurai suffit amplement ...
alors minola .. montre nous des exemples de contenu de tes 2 fichiers...!
[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...
---------------
Partager