DÉCRYPTEUR DE SOURCE

Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 - 28 juil. 2003 à 20:42
skram666 Messages postés 55 Date d'inscription vendredi 6 décembre 2002 Statut Membre Dernière intervention 8 mars 2007 - 2 août 2003 à 21:59
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/8068-decrypteur-de-source

skram666 Messages postés 55 Date d'inscription vendredi 6 décembre 2002 Statut Membre Dernière intervention 8 mars 2007
2 août 2003 à 21:59
La fonction n'est pas de moi je l'ai trouve sur ce site donc dsl . Sinon merci pour ces conseils j'en ferais bon usage merci les gars
@+
skram
cs_mehdibou Messages postés 365 Date d'inscription vendredi 24 mai 2002 Statut Membre Dernière intervention 18 octobre 2004
31 juil. 2003 à 18:21
Warny, je me permets de réduire un peu ton code :
Public Function Hex2Dec(str as String) As Long
Hex2Dec = Val("&H" & str)
End Function
cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
29 juil. 2003 à 09:04
PS : ton source ne décrypte pas le HTML, mais les URL
cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
29 juil. 2003 à 09:02
Salut,
Tu as encore quelques progrès à faire au niveau code :
- Tes commentaires doivent expliquer le programme, avant une procédure tu dois dire à quoi elle sert, dans une procédure tu dois expliquer comment elle marche
- Tu dois nommer tes variables explicitement ou mettre un commentaire à côté de leur déclaration pour dire à quoi elle servent
- Tu doit donc aussi bien sûr déclarer tes variables dans le type qui optimise le plus les traitements. Tes nombres sont des entiers, tu dois traiter des entiers. Quand tu ne déclare rien tes variables sont des variants. VB doit donc faire une conversion implicite à l'execution(late binding) qui prend du temps.
- Evite les variables globales. Dans 99% des cas, il s'agit de valeurs qui pourrait-être déclarée dans des procédure. Et dans 98% des cas, c'est des variables qu'on est tenter d'utiliser parce qu'elles sont là. C'est donc le meilleur moyen de fusiller son programme.

Voici une procédure améliorable de conversion hexa vers décimal
Tu l'as écrite 3 fois dans ton programme (c'est donc 2 fois de trop)

Public Function Hex2Dec(Val as String) As Long
Dim Figure as Long 'Chiffre hexa testé
Dim Ret as Long ' retour de la function
For Figure=1 to len(Val)
Ret = Ret * 16 ' On décale d'un bit, comme le shift n'existe pas en basic on passe par la multiplication
'En fonction du chiffre on ajoute une valeur à ret, c'est pas otpimisé mais c'est facile à comprendre
Select Case lcase(mid$(val,figure,1))
Case "0":
Case "1":Ret = Ret + 1
Case "2":Ret = Ret + 2
Case "3":Ret = Ret + 3
Case "4":Ret = Ret + 4
Case "5":Ret = Ret + 5
Case "6":Ret = Ret + 6
Case "7":Ret = Ret + 7
Case "8":Ret = Ret + 8
Case "9":Ret = Ret + 9
Case "a":Ret = Ret + 10
Case "b":Ret = Ret + 11
Case "c":Ret = Ret + 12
Case "d":Ret = Ret + 13
Case "e":Ret = Ret + 14
Case "f":Ret = Ret + 15
Case "6":Ret = Ret + 6
End Select
Next
Hex2Dec = Ret
End function

Interresse toi aussi à la fonction mid
Je peux réduire ton programme à une procédure d'une dizaine de ligne en plus de la fonction juste au dessus (que je pourrais réduire encore de moitié)
Va sur le site de microsoft, il y a plein de codes exemples de qualité. Prend exemple !
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
28 juil. 2003 à 20:42
mm c bordélik a souhait ... pis les variables nommées 'z' ou 'y' c nul ... bon ta un ti peu commenté .. 5 alor mais suis dans un bon jour
Rejoignez-nous