CONVERSION HEXADECIMAL

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 10 août 2003 à 11:07
user82 Messages postés 2 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 10 août 2006 - 10 août 2006 à 12:10
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/8187-conversion-hexadecimal

user82 Messages postés 2 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 10 août 2006
10 août 2006 à 12:10
that's it
merci
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
8 août 2006 à 09:47
rien a ajouter...

VB "perds" parfois cette fonction.
ajoute simplement 'Strings' devant :

Strings.Space$
user82 Messages postés 2 Date d'inscription samedi 11 mars 2006 Statut Membre Dernière intervention 10 août 2006
8 août 2006 à 08:23
salut,
j'ai téléchargé un projet en VB mais lorsque je compile, il ne reconnait pas la fonction "Space" ( Renfield l'a utilisé ds son code) . je voudrais savoir s'il y a pas une librairie à ajouter
merci
Alan71 Messages postés 530 Date d'inscription lundi 3 juin 2002 Statut Membre Dernière intervention 13 juin 2004
10 août 2003 à 22:39
différencier humour et puérilité serait sans doute une chose a apprendre renfield

quand a tout ce ramassis de commentaire, je prefere user du silence.
mightykay Messages postés 10 Date d'inscription dimanche 29 décembre 2002 Statut Membre Dernière intervention 17 mai 2004
10 août 2003 à 22:10
dit moi faut toujours que tu aille le dernier mot?
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 août 2003 à 21:43
Que répondre à un commentaire si puérile !


(En plus entre nous, Niveau 2, je suis pas sur !)
mightykay Messages postés 10 Date d'inscription dimanche 29 décembre 2002 Statut Membre Dernière intervention 17 mai 2004
10 août 2003 à 21:27
et voila ton code est mieu mais n'empeche jai eu l'idée le premier nana =P
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 août 2003 à 15:40
j'ai fait le test avec tous les caracteres ascii
et une difference existe bien pour chr(17)

il faut modifier la fonction comme ca :
If Car < 16 Then

et ca donne pareil que ta fonction, donc voila, ca se perfectionne :D
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 août 2003 à 15:34
mais qu'est-ce que tu racontes ?? je convertis bien tous les caractères !!! Y compris les tabulations ! Mon code fait comme le tien !! la seule vraie modification est au niveau de la concatenation........
et j'ai viré ta fonction, a part ca.......

a moins que je ne fasse vraiment une erreur de manipulation....
Que testes-tu comme chaine ?? J'ai fais un test assi, et je recupere la meme chose que toi !
mightykay Messages postés 10 Date d'inscription dimanche 29 décembre 2002 Statut Membre Dernière intervention 17 mai 2004
10 août 2003 à 12:28
oops jai oublier denlever le on error cétait pas voulu ehehe et c normal fo commencer a 1 donc jai fixé ca =P
mightykay Messages postés 10 Date d'inscription dimanche 29 décembre 2002 Statut Membre Dernière intervention 17 mai 2004
10 août 2003 à 12:21
eheheh peut etre as-tu raison pour la vitesse n'empeche ton Truc affiche pas tout les Caractere désoler de te le dire ;) mais le mien les affiche tout et jai testé ;)
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 août 2003 à 11:07
La perfection n'est pas de ce monde.....désolé !

>> For A = 0 To Len(Text)
tu ne peux utiliser l'indice 0 !! (merci le On Error.....)

d'autre part, ton code ne permet de gérer que les strings de 655535 caracteres (type integer oblige.....)

bien sur, VB est assez limité, en longueur de chaine.... passons.
pour une chaine de 65535 caracteres, ton code met 36 secondes (sur ma machine)

cette lenteur provient de la concatenation que tu effectue. En fait, quand tu concatene, vb alloue une variable temporaire, transfere le contenu, alloue la place necessaire pour la variable et y transfere le contenu de la variable temporaire. C'est LONG.

la solution consiste a allouer dès l'origine la place necessaire.et de transferer les valeurs hexa où il faut dans la chaine :

Function HexCrypt2(ByRef Text As String) As String
Dim Size As Long
Dim Buffer As String
Dim Car As Byte
Dim i As Long

Size = Len(Text)
Buffer = Space$(2 * Size)

For i = 1 To Size
Car = Asc(Mid$(Text, i, 1))
If Car <= 16 Then
Mid$(Buffer, (i * 2) - 1, 2) = "0" & Hex$(Car)
Else
Mid$(Buffer, (i * 2) - 1, 2) = Hex$(Car)
End If
Next i
HexCrypt2 = Buffer
End Function

tu verra tout de suite que cette version est PLUS RAPIDE (moins de 200ms sur ma machine.)
Rejoignez-nous