|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
conversion en hexadecimal |
Débuté par super b, 12 avr. 2005 13:32 - 7 réponses |
| |
| | | |
|
| |
Posté le 12 avril 2005 - 13:32 |
Bonjour a tous ,
Je sais que cette question a deja ete posée mais je n'ai pas compris
Donc je me lance
Je debute avec Windev et j'ai une chaine du style 531TBZ20622 et j'amerai la traduire en hexadecimal
En fait je la mets en minuscule et je veux rajouter deux zero a la fin et la convertir en hexa
Qqun peut il m'aider en m'expliquant de facon claire (comme a un enfant de 6 ans lol ) comment faire me donner le code m'aiderai, me l'expliker m'aiderai encore plus
merci bcp |
| |
| |
| | | |
|
| | |
| |
Posté le 12 avril 2005 - 16:14 |
fonction vers_HEX(nChaine)
ChaineHex est une chaîne nCpte est un entier
//On passe la chaine en minuscule nChaine = Minuscule(nChaine) //On ajoute les deux zero en fin de chaine nChaine = nChiane + "00"
//On parcour la chaine caractère par caractère pour convertir chaque caratère en hexa et on les concataine pour a la fin obtenir la chaine d'origine en hexa
POUR nCpte = 1 A Taille (nChaine) //On extrait le caractère a la position i dans la chaine cCaract est une chaîne = Milieu(nChaine,nCpte,1) //On le convertie en hexadecimal nHex est un chaîne = NumeriqueVersChaîne(Asc(cCaract),"x") //On concataine les caractère en hexa pour avoir la chaine en hexa ChaineHex+=nHex FIN
RENVOYER ChaineHex
Tu as tous compris ? |
| |
| |
| | | |
|
| | |
| |
Posté le 12 avril 2005 - 16:18 |
Bonjour,
Tout d'abord, cette chaîne n'est pas transformable en hexadécimal, en ce sens qu'elle inclut des nombres (codables en hexa) et des lettres.
En termes purement techniques, que ce soit du binaire ou de l'hexa, c'est simplement une question de transformation. Mais...
L'hexadecimal va de 0 à 15 (0 1 2 3 4 5 6 7 8 9 a b c d e f) donc si on peu coder un chiffre, une lettre telle que z ou Z, c'est plus difficile.
Sinon prenons 15 en tant que nombre :
15/16 il reste 15 soit F
35 : 35 / 16 il reste 3 ; 35-3 / 16 = 2 mon 35 devient 23 en hexa.
255 / 16 reste 15 soit F ; 255 - 15 / 16 = 15 soit F, le nombre est FF.
Et ainsi de suite, par modulo et congruence, pour reprendre les termes mathématiques respectivement de reste de la division et résultat en parties entières (si mes souvenirs sont bons).
Bien cordialement,
Jacques De Schryver
nb : Si tu souhaite mettre en hexa pour des raisons de cryptage, on peut trouver plus simple. |
| |
| |
| | | |
|
| | |
| |
Posté le 12 avril 2005 - 17:17 |
Re-bonjour,
Le code de Jérôme donne des octets, soit effectivement de l'hexadécimal au sens ou chaque caractère est codé sur deux symboles hexa.
Donc c'est techniquement de l'ASCII (0 à 255), tel que le stipule son code.
Et cela marche bien.
Cependant il s'agit d'une traduction caractère par caractère.
La méthode que j'ai illustrée traduit non pas des caractères mais des nombres.
Comme les deux fonctionnent, c'est à toi de voir...
Bien cordialement,
Jacques De Schryver |
| |
| |
| | | |
|
| | |
| |
Posté le 12 avril 2005 - 17:45 |
au lieu de Milieu(nChaine,nCpte,1)....il faut utiliser nChaine[[nCpte]] beaucoup plus rapide ! ce qui permet de faire à la place de ça
//On extrait le caractère a la position i dans la chaine cCaract est une chaîne = Milieu(nChaine,nCpte,1) //On le convertie en hexadecimal nHex est un chaîne = NumeriqueVersChaîne(Asc(cCaract),"x") //On concataine les caractère en hexa pour avoir la chaine en hexa ChaineHex+=nHex
ChaineHex = "" FOR nCpte = 1 to Taille (nChaine) ChaineHex += NumériqueVersChaine( Asc( nChaine[[nCpte]] ) ,"02x") END
"raimbourg jerome" <jerome.raimbourg@gmail.com> a écrit dans le message de news:425bb026@news.pcsoft.fr...
fonction vers_HEX(nChaine)
ChaineHex est une chaîne nCpte est un entier
//On passe la chaine en minuscule nChaine = Minuscule(nChaine) //On ajoute les deux zero en fin de chaine nChaine = nChiane + "00"
//On parcour la chaine caractère par caractère pour convertir chaque
caratère en hexa et on les concataine pour a la fin obtenir la chaine d'origine en hexa
POUR nCpte = 1 A Taille (nChaine) //On extrait le caractère a la position i dans la chaine cCaract est une chaîne = Milieu(nChaine,nCpte,1) //On le convertie en hexadecimal nHex est un chaîne = NumeriqueVersChaîne(Asc(cCaract),"x") //On concataine les caractère en hexa pour avoir la chaine en hexa ChaineHex+=nHex FIN
RENVOYER ChaineHex
Tu as tous compris ?
|
| |
| |
| | | |
|
| | |
| |
Posté le 13 avril 2005 - 03:20 |
tout d'abord merci a tous de m'avoir repondu
Qd j'applique votre code Windev (9) me renvoie inlassablement le meme code d'erreur
"Les paramètres d'appel du code Clic sur Btn_Calc sont incorrects : on attendait 1 paramètres et on en a reçu 0."
Qqun peut il me dire ce que cela signifie ? Ais je fait une erreur ds la conversion des variables ou s'agit il d'autre chose je precise que j'ai créée ma fenetre avec deux champs un champs de saisie nommé "NumSerie" et un autre ou devrait s'afficher le resultat nommé tres pompeusement "WEPKEY" Le tout est agrementé allègrement par un bouton censé lancer l'operation
Je suis desolé de vous embeter (car je presume que vous avez des choses bien plus interressante a faire que de repondre aux questions des debutants niais ) mais j'apprecierai ( et mon patron aussi lol) avoir une reponse ou un debut de piste
Merci a tous encore une fois |
| |
| |
| | | |
|
| | |
| |
Posté le 13 avril 2005 - 10:43 |
La fonction que tu appelle attend un paramètre (sûrement la valeur saisie dans NumSerie) mais tu ne le met pas à l'appel
code Clic sur Btn_Calc WEPKEY = VersHexa(NumSerie)
FUNCTION VersHexa(pChaine) ............................... .............................. .............................. .............................. Renvoyer Resultat
"super_b" <superb@test.fr> a écrit dans le message de news:425c4c39$1@news.pcsoft.fr...
tout d'abord merci a tous de m'avoir repondu
Qd j'applique votre code Windev (9) me renvoie inlassablement le meme
code d'erreur
"Les paramètres d'appel du code Clic sur Btn_Calc sont incorrects : on
attendait 1 paramètres et on en a reçu 0."
Qqun peut il me dire ce que cela signifie ? Ais je fait une erreur ds la conversion des variables ou s'agit il d'autre
chose > je precise que j'ai créée ma fenetre avec deux champs un champs de saisie nommé "NumSerie" et un autre ou devrait s'afficher le resultat nommé tres pompeusement "WEPKEY"
Le tout est agrementé allègrement par un bouton censé lancer l'operation
Je suis desolé de vous embeter (car je presume que vous avez des choses bien plus interressante a faire que de repondre aux questions des debutants niais ) mais j'apprecierai ( et mon patron aussi lol) avoir une reponse ou un debut de piste
Merci a tous encore une fois
|
| |
| |
| | | |
|
| | |
| |
Posté le 14 avril 2005 - 14:42 |
Merci a tous ( et surtout Philippe) pour votre aide Ca marche nickel vous etes des boss |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|