IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Décodabilité BASE256 en ASCII


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 14
    Points : 18
    Points
    18
    Par défaut Décodabilité BASE256 en ASCII
    Bonjour,

    Lorsque je flashe un Datamatrix en Base256, j’obtiens la liste des caractères Ascii suivants :

    ([HT]tŸ[NUL]š[ETB]”À[NUL][EOT]#s[STX]iòØ—sb§†ÂŒ‰"W°òÑ]z$yùïµÛÙC¿µFJ]èË[CR]

    Je souhaiterais pouvoir récupérer la valeur de chaque code Ascii.

    Merci d'avance pour votre aide.

    SpeedService

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut.

    Voilà une fonction qui réalise cela et renvoie un tableau indicé 1 des codes ascii de la chaine passée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function AsciiList(Value As String)
      ReDim t(1 To Len(Value))
     
      Dim i As Long
      For i = 1 To Len(Value)
        t(i) = Asc(Mid(Value, i, 1))
      Next
      AsciiList = t
    End Function
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Une autre version :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function CarToAscii(s As String) As Byte()
       CarToAscii = StrConv(s, vbFromUnicode)
    End Function
    Cordialement,
    Franck

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    , Franck,

    Je pense rarement à strconv
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre à l'essai
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 14
    Points : 18
    Points
    18
    Par défaut
    merci, mais il me reste une conversion exemple : [HT] en 009 à solutionner ?

  7. #7
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Pas compris... Désolé.

    Comment le(s) code(s) ascii de [HT] pourraient donner 009 ?
    Cordialement,
    Franck

  8. #8
    Membre à l'essai
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 14
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par pijaku Voir le message
    Bonjour,

    Pas compris... Désolé.

    Comment le(s) code(s) ascii de [HT] pourraient donner 009 ?

    Je me suis mal exprimée :
    Tabulation horizontale : "HT" en ASCII = 09

  9. #9
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Dans ton code d'appel, utilise la fonction Replace pour remplacer [HT] par une tabulation (Chr(9)) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub demo()
    Dim s As String, tb() As Byte
       s = "([HT]tŸ[NUL]š[ETB]”À[NUL][EOT]#s[STX]iòØ—sb§†ÂŒ‰""W°òÑ]z$yùïµÛÙC¿µFJ]èË[CR]"
       s = Replace(s, "[HT]", Chr(9))
       tb = CarToAscii(s)
    End Sub
    Idem pour les autres particularités : [CR] etc...
    Cordialement,
    Franck

  10. #10
    Membre à l'essai
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 14
    Points : 18
    Points
    18
    Par défaut
    Mille mercis, je n'avais pas pensé à cette façon d'opérer.
    C'est tout bon, a suivre pour d'autres utilisateurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    s = Replace(s, "[NUL]", Chr(0))
    s = Replace(s, "[SOH]", Chr(1))
    s = Replace(s, "[STX]", Chr(2))
    s = Replace(s, "[ETX]", Chr(3))
    s = Replace(s, "[EOT]", Chr(4))
    s = Replace(s, "[ENQ]", Chr(5))
    s = Replace(s, "[ACK]", Chr(6))
    s = Replace(s, "[BEL]", Chr(7))
    s = Replace(s, "[BS]", Chr(8))
    s = Replace(s, "[HT]", Chr(9))
    s = Replace(s, "[LF]", Chr(10))
    s = Replace(s, "[VT]", Chr(11))
    s = Replace(s, "[FF]", Chr(12))
    s = Replace(s, "[CR]", Chr(13))
    s = Replace(s, "[SO]", Chr(14))
    s = Replace(s, "[SI]", Chr(15))
    s = Replace(s, "[DLE]", Chr(16))
    s = Replace(s, "[DC1]", Chr(17))
    s = Replace(s, "[DC2]", Chr(18))
    s = Replace(s, "[DC3]", Chr(19))
    s = Replace(s, "[DC4]", Chr(20))
    s = Replace(s, "[NAK]", Chr(21))
    s = Replace(s, "[SYN]", Chr(22))
    s = Replace(s, "[ETB]", Chr(23))
    s = Replace(s, "[CAN]", Chr(24))
    s = Replace(s, "[EM]", Chr(25))
    s = Replace(s, "[SUB]", Chr(26))
    s = Replace(s, "[ESC]", Chr(27))
    s = Replace(s, "[FS]", Chr(28))
    s = Replace(s, "[GS]", Chr(29))
    s = Replace(s, "(RS]", Chr(30))
    s = Replace(s, "[US]", Chr(31))
    s = Replace(s, "(SP]", Chr(32))

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub test()
        s = "([HT]tŸ[NUL]š[ETB]""À[NUL][EOT]#s[STX]iòØ—sb§†ÂŒ‰""W°òÑ]z$yùïµÛÙC¿µFJ]èË[CR]"
        Debug.Print Join(convert_to_asc(s), "-")
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function convert_to_asc(s)
        s = Replace(s, "[HT]", vbTab)
        s = Replace(s, "[NUL]", ChrW(0))    'je suppose
        's = Replace(s, "[ETB]", "?")' a compléter
        's = Replace(s, "[EOT]", "?")' a compléter
        's = Replace(s, "[STX]", "?")' a compléter
        'etc....
        For i = 1 To Len(s): res = res & " " & Format(Asc(Mid(s, i, 1)), "0#"): Next
        'tu peux spliter par les " " pour en faire un tableau en sortie
        convert_to_asc = Split(Trim(res), " ")
    End Function
    resultat
    40-09-116-159-00-154-91-69-84-66-93-34-192-00-91-69-79-84-93-35-115-91-83-84-88-93-105-242-216-151-115-98-167-134-194-140-137-34-87-176-242-209-93-122-36-121-249-239-181-219-217-67-191-181-70-74-93-232-203-91-67-82-93
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #12
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    A ta place, je me construirai une petite fonction de remplacement des caractères spécifiques.

    Voici ce que cela donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Option Explicit
     
    Sub demo()
    Dim s As String, tb() As Byte
       s = "([HT]tŸ[NUL]š[ETB]”À[NUL][EOT]#s[STX]iòØ—sb§†ÂŒ‰""W°òÑ]z$yùïµÛÙC¿µFJ]èË[CR]"
       s = Remplace(s)
       tb = CarToAscii(s)
    End Sub
     
    Function Remplace(s As String) As String
    Dim v As Variant, i As Long, temp As String
       temp = s
       v = Array("[NUL]", "[SOH]", "[STX]", "[ETX]", "[EOT]", "[ENQ]", "[ACK]", "[BEL]", "[BS]", "[HT]", "[LF]", "[VT]", "[FF]", "[CR]", "[SO]", "[SI]", "[DLE]", "[DC1]", "[DC2]", "[DC3]", "[DC4]", "[NAK]", "[SYN]", "[ETB]", "[CAN]", "[EM]", "[SUB]", "[ESC]", "[FS]", "[GS]", "[RS]", "[US]", "[SP]")
       For i = LBound(v) To UBound(v)
          temp = Replace(temp, v(i), Chr(i))
       Next i
       Remplace = temp
    End Function
     
    Function CarToAscii(s As String) As Byte()
       CarToAscii = StrConv(s, vbFromUnicode)
    End Function
    Cordialement,
    Franck

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Code ASCII du symbole Euro
    Par FW-S dans le forum Delphi
    Réponses: 9
    Dernier message: 03/04/2007, 01h27
  2. [web] Barre de Progression ASCII
    Par Red Bull dans le forum Web
    Réponses: 13
    Dernier message: 05/06/2003, 12h56
  3. Ascii DOs -> Ascii Windows
    Par remixtech dans le forum Langage
    Réponses: 3
    Dernier message: 22/03/2003, 07h14
  4. Conversion binaire -> ASCII
    Par will13013 dans le forum C
    Réponses: 8
    Dernier message: 08/01/2003, 04h12
  5. exporter la structure d'une base Sybase en ascii
    Par Jean-Cyp dans le forum Sybase
    Réponses: 5
    Dernier message: 05/11/2002, 16h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo