djefly
Messages postés16Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention18 février 2005
-
15 févr. 2005 à 12:17
djefly
Messages postés16Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention18 février 2005
-
16 févr. 2005 à 12:44
j'ai besoin d'un petit coup de main est ce que quelqu'un est en mesure de m'expliquer ca?
est ce normal
comment faire pour retrouver cette valeur ("00004348") en VB
djefly
Messages postés16Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention18 février 2005 15 févr. 2005 à 12:44
quand tu converti 200 en hexadecimal on trouve C8 la je suis daccord
mais je comprend pas qd on passe a un type de donnees float 32 on obtient la valeur 4348
moi dans mon prog je veux convertir un decimal vers un caractere
exemple :
valeur decimal 200
valeur converti en hexa : C8
valeur que je veux recuperer : 4348 car cela correspond au caractere que je dois recuperer c'est a dire CHR(67) et CHR(72)
djefly
Messages postés16Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention18 février 2005 15 févr. 2005 à 14:25
si on prend la valeur hexa de 48 correspond le caractere ascii H et code ascii 72 d'ou chr(72)
43 correspond le caractere ascii C et code ascii 67 d'ou chr(67)
voila le code :
Dim Chaine As String
Dim chaine1(7) As String
Dim ChaineRet As String
Dim i As Integer
Dim valchaine As Integer
Dim valtest As String
var = txt1.Text
ChaineRet = ""
'var = var / 100
Debug.Print Asc(128)
txt2.Text = ""
Chaine = String(8 - Len(Hex(var)), "0") & Hex(var)
For i = 0 To 7
chaine1(i) = Mid(Chaine, i + 1, 1)
Select Case chaine1(i)
Case "A"
chaine1(i) = 10
Case "B"
chaine1(i) = 11
Case "C"
chaine1(i) = 12
Case "D"
chaine1(i) = 13
Case "E"
chaine1(i) = 14
Case "F"
chaine1(i) = 15
End Select
Next
For i = 0 To 7
txt2.Text = txt2.Text & chaine1(i)
Next
End Sub
suite d'explication :
d'apres le logiciel (hex worshop) dont g fait la copie d'ecran en haut
quand on passe de unsigned long a float(32) on passe de la valeur hex C8 a 4348
et moi c ce que je veux pouvoir recuperer comme valeur
Vous n’avez pas trouvé la réponse que vous recherchez ?
djefly
Messages postés16Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention18 février 2005 15 févr. 2005 à 14:28
g extrait ce code d'un prog qui sert a la base a creer un fichier de caractere pour une machine a commande numerique et donc je veux pouvoir lui passer une dimension cette dimension je dois la passer en caractere et pour cette machine la valeur 200 correspond en code ascii a chr(0) chr(0) chr(72) chr(67)
djefly
Messages postés16Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention18 février 2005 15 févr. 2005 à 15:52
manu merci pour ce morceau de code comme ta di mon collegue ca marche pas pour tout pour te filer un coup de main voici ou tu peux telecharger un shareware ou tu pourra verifier toute les valeurs ce logiciel s'appel hex worshop
une fois installer dans le menu "Tools" il y a un outil qui s'appel base converter
byte order : motorola
data type : float 32
ensuite y a qu'a taper la valeur en decimal et ca te donne automatiquement ce que l'on veut
voila.
http://www.01net.com/telecharger/windows/Bureautique/editeur_de_texte/fiches/2152.html?fy
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200825 15 févr. 2005 à 15:56
> ca marche pas pour tout
Bah non, je l'ai rendu compatible avec les données que tu m'as données
(100,200,201,202, ...). Si tu veux rentrer le nombre décimal 135435434,
çà va planter, c'est sûr !
mais si tu pouvais m'aiguiller sur les nombres qui ne vont pas, çà
m'aiderait à améliorer le code. Je ne peux travailler que si j'ai des
infos complètes.
Manu -------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
Cette suite n'est pas linéaire, et n'a même aucune forme qui me soit familière.
Par conséquent, je ne peux pas créer l'algo qui passe du nombre décimal au nombre hexadécimal. Impossible.
Il faut que vous trouviez l'algorithme de correspondance entre les deux
nombres. Personne ne peut le deviner en voyant le tracé de la courbe.
J'ai tracé point par point, une courbe représentant les nombres
décimaux en abscisses et les nombres hexadécimaux en ordonnées. Il n'y
a aucune relation évidente entre les deux.
Il y a sûrement un algo compliqué qui réalise çà, mais je ne peux pas le deviner.
=> Donc pas de programme générique. Il faut demander au concepteur de Hex Worshop comment il a fait.
Navré.
Manu -------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
djefly
Messages postés16Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention18 février 2005 15 févr. 2005 à 16:21
je c'est pas si ca peut changer qqch mais avec hex workshop
quand on se sert de l'outil base converter
byte order : motorola
data type : float 32
tu met la valeur en decimale
en ensuite tu change float 32 en unsigned long et regarde 4348 devient C8
y a t'il un moyen de passer d'un float(32) vers un unsigned long en VB
faire un test du genre recuperer la valeur C8 dans un float par exemple pour la valeur decimale 200 puis convertir en unsigned long
Notamment des fonctions Single_To_Binary et Binary_To_Hexa_32.
Il y a peut être plus simple mais j'ai testé vos valeurs avec mon code et ça marche.
L'idée est de transformer le nombre float 32 en binaire puis de le reconvertir en hexa le tout en tenant compte de la norme IEEE 754.
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 15 févr. 2005 à 19:12
Tout à fait ok avec toi cbnet. Quand j'ai fait ce code, c'était une sorte d'amusette pour voir si c'était possible en VB et pour quelques uns qui en avaient fait la demande.