Char vers hexa

Soyez le premier à donner votre avis sur cette source.

Vue 8 186 fois - Téléchargée 5 295 fois

Description

Convertir du mode string vers hexa (sans Hex) Yap la base.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_MasterHack
Messages postés
586
Date d'inscription
jeudi 18 septembre 2003
Statut
Membre
Dernière intervention
13 février 2008
1
Le but de cette source est seulement pour donner la base de la conversion Hexadecimale, sinon j'utiliserai Hex avec Asc tout simplement.
Merci Renfield
j'ai utilser do loop pour ceux qui veulent convertir les nombre en hexa , car pour un nombre de 10000 on vas refaire l'operation , donc cette source peut changer de (char vers hexa) à (num vers hexa) facilement. vous voyez.
mais la je vous remerci car dans cette source il y a deux sources en realite
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
judicieuse remarque de Gobillot : les caractères ne vont que jusqu'a 255, pas besoin de faire cette gestion des nombres plus importants...


ton code nettoyé donnerait par exemple :

Option Explicit

'# La Table est stockée une fois pour toute
Dim Table As Variant

Private Sub Form_Load()
'# Remplissage de la table
Let Table = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F")
End Sub

'# Le parametre optionnel Separator permet de définir une chaine de séparation entre les caractères
'# La fonction renvoies un String
Function Hexa(Texte As String, Optional Separator As String = "") As String
'# On définit toutes nos variables !
Dim i As Integer
Dim code As Integer
'# On ne souhaite pas recalculer les longueur des chaines
Dim L As Integer: L = Len(Texte)
Dim S As Integer: S = Len(Separator)

'# On reserve une chaine de caractère de longueur suffisante
Hexa = Space$(2 * L + (L - 1) * S)

For i = 1 To L
code = AscW(Mid$(Texte, i, 1))
'# On remplace certains morceau de la chaine hexa (on n'alloue plus d'espace supplémentaire pour chaque caractère)
Mid$(Hexa, 1 + ((i - 1) * (L + S)), 3) = Table(code \ 16) & Table(code And 15) & Separator
Next i
End Function
Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
22
pour avoir le code hexa d'un caratère, sans passer par la fonction Hex$, il te suffisait de faire ça:

Dim code As Integer
. . . . . . . . . .
code = Asc(Mid$(Texte, i, 1))
Hexa = Hexa & Table(code \ 16) & Table(code And 15)
. . . . . . . . . .

et ta boucle Do ... Loop elle sert à rien
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
Pourquoi ne pas utiliser Hex ?

de plus, tu devrais declarer tes variables, ce qui accelererais un peu ta fonction (Variant + int(q)...)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.