Identifier le code ASCII d'un caractère

Signaler
Messages postés
67
Date d'inscription
jeudi 26 juin 2008
Statut
Membre
Dernière intervention
11 mai 2010
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Bonjour, j'ai chargé dans blocnotes un fichier d'un ancient logiciel DOS qui permet de créer des plaquettes d'identification sur une vieille machine.

Le but est de créer le fichier à partir d'une macro Excel. Jusque là, ça va. Le fichier n'est pas encrypté d'aucune façon. Par contre, il y a un caractère inconnu qui s'affiche comme un carré que je n'arrive pas à identifier. Je ne peux pas le coller dans mon code VBA, ni dans word, rien. Comment je peux identifier le code ASCII de se caractère?

Merci

4 réponses

Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
Salut,

Je ne sais plus exactement si c'est une saut de ligne, ou une tabulation ce carré ^^

A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
salut,

dans VBA?
tu as postée en VB.NET.....
topic déplacé

copie le carré
dans VBA en bas tu as la fenêtre d'execution. si tu ne l'as pas : Ctrl+G
tu y tapes
?asc("X")



X


remplacé par ton carré
entrée
tu auras le code du caractère

NB : le carré est une caractère dit "non imprimable", ou "non affichable"

voir ce snippet pour savoir quelle valeur il peut représenter :



<hr />
'    CARACTÈRE(S) AFFICHABLE(S) DANS UNE ZONE DE TEXTE
CLASSIQUE
'    http://www.codyx.org/snippet_caractere-affichable-dans-zone-texte-classique_219.aspx#705
'    Posté par [ PCPT ] le 08/09/2006
<hr />



Function

 IsDisplayable(vParam 
As
 
Variant

As
 
Boolean
 

' vParam contient soit :




'   1. le code ascii d'un caractère




'   2. une chaîne composée de 1 ou plusieurs caractères


    IsDisplayable = 
False
 

    
Dim
 iType 
As
 VbVarType 
    iType = 
VarType
(vParam) 

    
If
 (iType <> vbInteger) 
And
 (iType <> vbString) 
Then
 
        Err.Raise vbObject 
Or
 vbVariant, "IsDisplayable", "Type de paramètre incorrect." 
        
Exit
 
Function
 
    
Else
 
        
Dim
 sString 
As
 
String
, i 
As
 
Long
, iAscii 
As
 
Integer
 
        
If
 iType = vbInteger 
Then
 
            
If
 
Val
(vParam) < 0 
Or
 
Val
(vParam) > 255 
Then
 
                Err.Raise vbObject 
Or
 vbVariant, "IsDisplayable", "Paramètre inattendu." 
                
Exit
 
Function
 
            
End
 
If


            sString = Chr$(vParam) 
        
Else
 
            sString = 
CStr
(vParam) 
        
End
 
If
 

        
For
 i = 1 
To
 
LenB
(sString) 
Step
 2 
            iAscii = 
Asc
(MidB$(sString, i, 2)) 
            
If
 (iAscii < 32) 
Or
 (iAscii = 127) 
Or
 ((iAscii > 128) 
And
 (iAscii < 145)) 
Or
 ((iAscii > 146) 
And
 (iAscii < 160)) 
Then
 
Exit
 
Function
 
        
Next
 i 

        IsDisplayable = 
True
 
    
End
 
If
 

End
 
Function
 


' EXEMPLE D'UTILISATION


    
MsgBox
 IsDisplayable(127) 
 ' (carré)


    
MsgBox
 IsDisplayable("›") 
 '155 (autre carré)


    
MsgBox
 IsDisplayable("Test de phrase correcte") 
    
MsgBox
 IsDisplayable("Test de phrase " & Chr$(13) & "incorrecte")







++


Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
Messages postés
67
Date d'inscription
jeudi 26 juin 2008
Statut
Membre
Dernière intervention
11 mai 2010

Marche pas, puisque je peux pas coller mon carré dans VBA ni dans rien.

Et ca change quoi que je poste dans la section VB.NET ou VBA, quand ça n'a aucun lien direct avec la les langages de programmation?

Mais bon, j'ai fini par trouvé, et c'était pas un saut de ligne ce carré.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
çà change que je ne t'aurais pas demandé de taper "asc" dans la fenêtre d'execution sous vb.net, par exemple

n'hésite-pas à partager ta solution pour les autres membres dans ce cas
bonne journée