CONVERTISEUR BINAIRE, HEXA, OCTAL ET DECIMAL

jessoulabrute Messages postés 33 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 28 avril 2005 - 28 avril 2005 à 02:05
ticomic Messages postés 57 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 29 avril 2005 - 29 avril 2005 à 22:31
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/31046-convertiseur-binaire-hexa-octal-et-decimal

ticomic Messages postés 57 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 29 avril 2005
29 avril 2005 à 22:31
Eum, pour le français je comprend pas trop, je le trouve correcte, surtout qu'il n'y a pas beaucoup de mots la-dedans.

Mais ce que je voulais dire c'est plutot de faire une fonction au lieu d'un boutton. Bon, je donne un exemple plus clair:

Private Function Binaire2Hexa (byval nombrebinaire as string)
Ici ya tout le code pour convertir
Binaire2hexa = Nombre hexadécimal
End function

De cette façon, tu n'as qu'a mettre ca dans le boutton:
(ok, disons que tu le fais avec un msgbox par exemple)
msgbox "Le nombre hexadécimal est:" & Binaire2hexa(Zt_Binaire.Text)

C'est la particularité des fonctions, elle peuvent retourner une valeur et donc être utilisées presque comme des variables. Cela sert aussi de manière à ce que tu puisse mettre la fonction disons dans un module ou une dll (ca je ne connais pas ca, mais je crois que c'est possible). Comme ça tu peux convertir un nombre sans faire call bo_binaire2hexa_click et tu peux convertir un nombre qui n'est pas nécéssairement dans un endroit précis (tu n'as besoin que de la variable), et je répete que ça évite d'enlever ce qu'il y a déjà dans le clipboard. Bon, voila à peu près ce que devrais avoir l'air ton code (bon, c'est juste mon avis quand même, mais je crois que les autres membres seront d'accord):

Private Function Binaire2Hexa(ByVal nombre As String) As String
Dim nombrehexa As String
nombrehexa = ""
Var_Len = Len(nombre)
Var_OK = Var_Len / 4
Select Case Right(Var_OK, 2)
Case "25"
nombre = "000" + nombre
Case ",5"
nombre = "00" + nombre
Case "75"
nombre = "0" + nombre
End Select
Do Until Var_Fois >= (Var_Len / 4)
Var_Fois = Var_Fois + 1
Select Case Right(Left(nombre, (Var_Fois * 4)), 4)
Case "0000"
nombrehexa = nombrehexa + "0"
Case "0001"
nombrehexa = nombrehexa + "1"
Case "0010"
nombrehexa = nombrehexa + "2"
Case "0011"
nombrehexa = nombrehexa + "3"
Case "0100"
nombrehexa = nombrehexa + "4"
Case "0101"
nombrehexa = nombrehexa + "5"
Case "0110"
nombrehexa = nombrehexa + "6"
Case "0111"
nombrehexa = nombrehexa + "7"
Case "1000"
nombrehexa = nombrehexa + "8"
Case "1001"
nombrehexa = nombrehexa + "9"
Case "1010"
nombrehexa = nombrehexa + "A"
Case "1011"
nombrehexa = nombrehexa + "B"
Case "1100"
nombrehexa = nombrehexa + "C"
Case "1101"
nombrehexa = nombrehexa + "D"
Case "1110"
nombrehexa = nombrehexa + "E"
Case "1111"
nombrehexa = nombrehexa + "F"
End Select
Loop
Binaire2Hexa = nombrehexa
End Function

Et pour transformer un nombre binaire tu fais tout simplement nombrehexa = Binaire2hexa(nombrebinaire)

Bonne prog!
didyman Messages postés 86 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 8 novembre 2007
28 avril 2005 à 13:06
je ne comprend pas... j'écris français??? jme suis même forcer sur mes faute d'orthographe!!!

Merci pour vos commentaires!

Je vais tous le recorriger aujourd'hui... changer les IF par des Select Case et ajouter des commentaires.
Tukkkko Messages postés 29 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 29 janvier 2007
28 avril 2005 à 12:42
Ce code n'est pas terrible, ceci dit, MERCI DE BIEN VOULOIR ECRIRE FRANCAIS, ça ne serait pas mal du tout
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
28 avril 2005 à 09:54
Ton code de conversion en hexa et vraiment lourd, tu peut t'y prendre par un calcul.
didyman Messages postés 86 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 8 novembre 2007
28 avril 2005 à 02:20
Se code date de ya 2 ans et je ne connaisssais pas Select Case dans se temps la....

Mais c'est vrai que j'aurais pu l'adapter a se que je connais aujourd'hui avant de le poster...

et en passant Bo_Binaire2Hexa_Click() est un bouton alors impossible de mettre une variable! (messenble... logiquement)

Merci pour tes commentaire, j'en prend note!
ticomic Messages postés 57 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 29 avril 2005
28 avril 2005 à 02:07
Désolé, c'est moi qui a posté tout ca, pas Jesslabrute (auto login oups)
jessoulabrute Messages postés 33 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 28 avril 2005
28 avril 2005 à 02:05
Je sais pas si tu sais, mais ya déjà plusieurs codes de ce genre sur le site, disont que ca devient redondant si les sources n'ont rien de spécial.

Deuxièmement, je peux tout de suite voir que tu aurait pu utiliser end select au lieux de tous ces ifs (le processus en serait accéléré théoriquement).

De plus, tu te sert du clipboard?? Pas fort, ça, tu aurait en premier lieu du te servir d'une fonction, qui peux retourner un type ce qui est son utilité comparée a un sub, et puis au moins si tu utilise un sub, tu aurait pu mettre la valeur dans une variable au lieu que l'utilisateur aurait alors pu utiliser.

Encore une chose, Bo_Binaire2Hexa_Click() ne prend aucun argument! bon, une fonction aurait été mieux comme je disais, mais sinon tu aurait pu faire:
sub Bo_Binaire2Hexa_Click(byval nombrebinaire as string)

Bon, en tk, je te suggère d'aller voir les autres sources qui font la même chose (mais mieux) sur vbfrance je crois qu'il y en a a peu près 10 sinon plus.

Vraiment, c'est à améliorer.
Rejoignez-nous