Est-il possible d'inverser se script de conversion ascii

Résolu
Messages postés
175
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
28 octobre 2013
-
 mortalino -
Bonjour, je voudrais savoir s'il est possible d'inverser se script qui converti un texte normale en ascii pour qu'il convertisse du ascii en texte, quelqu'un saurait-il me renseigner ?

st = "ABC" 

'en decimal 
st2 ="" 
For i = 1 to Len( St) 
st2= st2 & Asc(Mid(st,i,1)) & " " 
Next 
wscript.echo st & " ==> " & st2 

51 réponses

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Salut,

La fonction inverse de Asc est Chr
Chr te renvoi le caractère dont tu as présisé la valeur ASCII


Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a n
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Oui, c'est un peu évident
Il faut aussi boucler différament:



st = "65 66 67"

CharASCII = Split(st, " ")

'en decimal

For i = 0 To UBound(CharASCII)

 st2 = st2 & Chr(CharASCII(i))

Next

wscript.echo st & " ==> " & st2





Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a n
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Dis moi si cette fonction marche ?



Function
HexToDec(ValHex)

  
Dim
DecValue

  
Dim
i

  
For
i = Len(ValHex)
To
1
Step
-1

    
Dim
d

    d = InStr(1,
"0123456789ABCDEF"
, Mid(UCase(ValHex), i, 1)) - 1

    DecValue = DecValue + d * (16 ^ (Len(ValHex) - i))

  
Next

  HexToDec = DecValue

End

Function





Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a n
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Faut aussi appeller la fonction :





,

st = "41 42 43"

' === Hexadecial

CharASCII = Split(st, " ")

For i = 0 To UBound(CharASCII)

 st2Hdcml = st2Hdcml & Chr(HexToDec(CharASCII(i)))

Next

wscript.echo st & " ==> " & st2Hdcml





(je ne fais pas non plus de vbscript, que du vb6 et du .net, donc je ne suis pas sur du résultat)



Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a n
Messages postés
175
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
28 octobre 2013

Ah ok, comme ceci:

Function HexToDec(ValHex)
   Dim DecValue
   Dim i
   For i = Len(ValHex) To 1 Step -1
     Dim d
    d = InStr(1, "0123456789ABCDEF" , Mid(UCase(ValHex), i, 1)) - 1
    DecValue = DecValue + d * (16 ^ (Len(ValHex) - i))
   Next
  HexToDec = DecValue
End Function



st = "41 42 43"



' === Hexadecial
CharASCII = Split(st, " ")
For i = 0 To UBound(CharASCII)
 st2Hdcml = st2Hdcml & Chr(HexToDec(CharASCII(i)))
Next



wscript.echo st & " ==> " & st2Hdcml
Messages postés
175
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
28 octobre 2013

Salut et merci

Donc jeai modifier le code come ceci:

st = "65 66 67

'en decimal
For i = 1 to Len( St)
 st2= st2 & Chr(Mid(st,i,1)) & " "
Next
wscript.echo st & " ==> " & st2

Mais cela renvoi une erreur

Saurais tu se qui ne va pas ?
Messages postés
175
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
28 octobre 2013

OK, merci beaucoup
Messages postés
175
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
28 octobre 2013

Ah me revoila, je n'arrive pas avec un script pour hexdecimale:

st = "41 42 43"


' === Hexadecial
CharASCII = Split(st, " ")
for i = 1 to Len( St)
 st2Hdcml= st2Hdcml & Hex(Chr(CharASCII(i))) & " "
next


wscript.echo st & " ==> " & st2Hdcml

Pourais tu m'aider ?
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
C'est un peu tout mélanger ton code.
Pourquoi utilise-tu la fonction hex() qui converti un nombre en hexa alors que tu veux faire l'inverse ?
Tu boucle sur la longeur de la chaine st alors qu'elle contient 3 caractères ASCII.

On remet un peu tout ca en ordre:


st = "41 42 43"

' === Hexadecial

CharASCII = Split(st, " ")

For i = 0 To UBound(CharASCII)

 st2Hdcml = st2Hdcml & Chr(Val("&H" & CharASCII(i)))

Next

wscript.echo st & " ==> " & st2Hdcml





Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a n
Messages postés
175
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
28 octobre 2013

Ce code me renvoie cette erreur:
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
étonnant que ça plante, t'as pas de lien ni de smiley !
prend FF, sans lien ni smiley : aucun plantage



J'ai pas mis de lien ni de smiley dans ma signature.
Mais je peux en mettre:
[reglement.aspx
ici
]
 
Pourtant je tourne sur IE



Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a n
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Oups. Erreur d'empacement. Ca ne t'est pas destiné.
Désolé



Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a n
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Quel erreur te renvoie t-il ?



Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a n
Messages postés
175
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
28 octobre 2013

C'est pas grave, j'avais poster un message quand même:

Ce code me renvoie cette erreur:
Messages postés
175
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
28 octobre 2013

Messages postés
175
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
28 octobre 2013

Caract: 2
Erreur: Type incompatible'Val'
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
VbScript ne connait pas val apparament.
(j'ai repris tes code avec vb6)

Il faut donc faire autrement. Il faut faire la fonction qui converti un hex en dec sois même.



Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a n
Messages postés
175
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
28 octobre 2013

Je n'est aucune idée de commant faire moi, je suis tout novice en vbs.
Messages postés
175
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
28 octobre 2013

Ah tu à répondu entre temps.

Quand j'éxécute le code, rien ne se passe.
Messages postés
175
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
28 octobre 2013

Ce code renvoi cette erreur:

Ligne:      9
Caract.:   2
Erreur:    Type incompatible: 'HexToDec'