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

WinDev Discussion :

Ascii vers hexadecimal


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2012
    Messages : 144
    Par défaut Ascii vers hexadecimal
    Dear Developpeurs,

    Je travaille sur un petit projet pour convertir un ascii en hexadecimal.
    Juste un exemple conversion de *222# ne donne 2A994C3602
    J'ai utilisé les fonctions windev BufferVersHexa , NumériqueVersChaîne mais pas le résultat attendu.
    Je traîne grave.
    Vos propositions sont les bienvenues
    Merci d'avance!

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 453
    Par défaut
    Bonjour,
    Tu peux nous donner les règles de conversion à appliquer ?
    5 caractères à l'origine, 5 octets à l'arrivée.
    Mais le reste ?

    Tatayo.

  3. #3
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2012
    Messages : 144
    Par défaut
    Merci Tatayo pour ta réactivité,

    Au fait qu'es ce que tu entends par règle de conversion ?
    Ci dessous le code java qui a permis de faire la conversion si ca peut aider mais je veux faire la conversion en windev.

    Code java : 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
                   public static String encode(String ascci){
            StringBuilder sb = new StringBuilder();
            int length = ascci.length();
            int gsm7Length = GSM7CHARS.length;
            for (int i = length; i > 0; i--) {
     
                char c = ascci.charAt((i - 1));
                for (int j = 0; j < gsm7Length; j++) {
     
                    if ((char) GSM7CHARS[j] == c) {
                        int num = GSM7CHARS[j];
                        sb.append(makeSevenBits(Integer.toBinaryString(num)));
                    }
                }
            }
            String encoded = from7BitBinaryToHexReversed(sb.toString());
            return encoded;

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 453
    Par défaut
    Il nous manque juste le contenu de GSM7CHARS, et ce que font les fonctions makeSevenBits() et from7BitBinaryToHexReversed().

    Tatayo.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 93
    Par défaut
    Bonjour,
    Ce n'est pas une conversion caractère vers hexa mais une forme de cryptage dont voici un début de conversion en wd

    GSM7CHARS est un tableau de valeur (wd : GSM7CHARS est un tableau de 256 entiers sur 2 octets)
    length va contenir la taille de la chaine à encoder (wd : taille(StringSource) )
    gsm7Length va contenir le nombre d'élément du tableau GSM7CHARS (wd : dimension(GSM7CHARS))
    Après on boucle pour chaque caractère de la chaine à encoder en partant de la fin (wd : for i=taille(StringSource) _TO_ 1 STEP -1))
    On met le code ascii dans "c" (wd : c = asc(StringSource[[i]]))
    puis on recherche dans le tableau GSM7CHARS la position de la valeur "c"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for j=1 _TO_ dimension(GSM7CHARS))
     if GSM7CHARS[j] = c then sortir
    end

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 93
    Par défaut
    Bonsoir
    Voila une "ébauche" de code qui donne le résultat "2A994C3602"
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
     
    GSM7CHARS est un tableau de 256 entiers 
    GSM7CHARS[1]= 0x0040
    GSM7CHARS[2]= 0x00A3
    GSM7CHARS[3]= 0x0024
    GSM7CHARS[4]= 0x00A5
    GSM7CHARS[5]= 0x00E8
    GSM7CHARS[6]= 0x00E9
    GSM7CHARS[7]= 0x00F9
    GSM7CHARS[8]= 0x00EC
    GSM7CHARS[9]= 0x00F2
    GSM7CHARS[10]= 0x00E7
    GSM7CHARS[11]= 0x000A
    GSM7CHARS[12]= 0x00D8
    GSM7CHARS[13]= 0x00F8
    GSM7CHARS[14]= 0x000D
    GSM7CHARS[15]= 0x00C5
    GSM7CHARS[16]= 0x00E5
    GSM7CHARS[17]= 0x0394
    GSM7CHARS[18]= 0x005F
    GSM7CHARS[19]= 0x03A6
    GSM7CHARS[20]= 0x0393
    GSM7CHARS[21]= 0x039B
    GSM7CHARS[22]= 0x03A9
    GSM7CHARS[23]= 0x03A0
    GSM7CHARS[24]= 0x03A8
    GSM7CHARS[25]= 0x03A3
    GSM7CHARS[26]= 0x0398
    GSM7CHARS[27]= 0x039E
    GSM7CHARS[28]= 0x00A0
    GSM7CHARS[29]= 0x00C6
    GSM7CHARS[30]= 0x00E6
    GSM7CHARS[31]= 0x00DF
    GSM7CHARS[32]= 0x00C9
    GSM7CHARS[33]= 0x0020
    GSM7CHARS[34]= 0x0021
    GSM7CHARS[35]= 0x0022
    GSM7CHARS[36]= 0x0023
    GSM7CHARS[37]= 0x00A4
    GSM7CHARS[38]= 0x0025
    GSM7CHARS[39]= 0x0026
    GSM7CHARS[40]= 0x0027
    GSM7CHARS[41]= 0x0028
    GSM7CHARS[42]= 0x0029
    GSM7CHARS[43]= 0x002A
    GSM7CHARS[44]= 0x002B
    GSM7CHARS[45]= 0x002C
    GSM7CHARS[46]= 0x002D
    GSM7CHARS[47]= 0x002E
    GSM7CHARS[48]= 0x002F
    GSM7CHARS[49]= 0x0030
    GSM7CHARS[50]= 0x0031
    GSM7CHARS[51]= 0x0032
    GSM7CHARS[52]= 0x0033
    GSM7CHARS[53]= 0x0034
    GSM7CHARS[54]= 0x0035
    GSM7CHARS[55]= 0x0036
    GSM7CHARS[56]= 0x0037
    GSM7CHARS[57]= 0x0038
    GSM7CHARS[58]= 0x0039
    GSM7CHARS[59]= 0x003A
    GSM7CHARS[60]= 0x003B
    GSM7CHARS[61]= 0x003C
    GSM7CHARS[62]= 0x003D
    GSM7CHARS[63]= 0x003E
    GSM7CHARS[64]= 0x003F
    GSM7CHARS[65]= 0x00A1
    GSM7CHARS[66]= 0x0041
    GSM7CHARS[67]= 0x0042
    GSM7CHARS[68]= 0x0043
    GSM7CHARS[69]= 0x0044
    GSM7CHARS[70]= 0x0045
    GSM7CHARS[71]= 0x0046
    GSM7CHARS[72]= 0x0047
    GSM7CHARS[73]= 0x0048
    GSM7CHARS[74]= 0x0049
    GSM7CHARS[75]= 0x004A
    GSM7CHARS[76]= 0x004B
    GSM7CHARS[77]= 0x004C
    GSM7CHARS[78]= 0x004D
    GSM7CHARS[79]= 0x004E
    GSM7CHARS[80]= 0x004F
    GSM7CHARS[81]= 0x0050
    GSM7CHARS[82]= 0x0051
    GSM7CHARS[83]= 0x0052
    GSM7CHARS[84]= 0x0053
    GSM7CHARS[85]= 0x0054
    GSM7CHARS[86]= 0x0055
    GSM7CHARS[87]= 0x0056
    GSM7CHARS[88]= 0x0057
    GSM7CHARS[89]= 0x0058
    GSM7CHARS[90]= 0x0059
    GSM7CHARS[91]= 0x005A
    GSM7CHARS[92]= 0x00C4
    GSM7CHARS[93]= 0x00D6
    GSM7CHARS[94]= 0x00D1
    GSM7CHARS[95]= 0x00DC
    GSM7CHARS[96]= 0x00A7
    GSM7CHARS[97]= 0x00BF
    GSM7CHARS[98]= 0x0061
    GSM7CHARS[99]= 0x0062
    GSM7CHARS[100]= 0x0063
    GSM7CHARS[101]= 0x0064
    GSM7CHARS[102]= 0x0065
    GSM7CHARS[103]= 0x0066
    GSM7CHARS[104]= 0x0067
    GSM7CHARS[105]= 0x0068
    GSM7CHARS[106]= 0x0069
    GSM7CHARS[107]= 0x006A
    GSM7CHARS[108]= 0x006B
    GSM7CHARS[109]= 0x006C
    GSM7CHARS[110]= 0x006D
    GSM7CHARS[111]= 0x006E
    GSM7CHARS[112]= 0x006F
    GSM7CHARS[113]= 0x0070
    GSM7CHARS[114]= 0x0071
    GSM7CHARS[115]= 0x0072
    GSM7CHARS[116]= 0x0073
    GSM7CHARS[117]= 0x0074
    GSM7CHARS[118]= 0x0075
    GSM7CHARS[119]= 0x0076
    GSM7CHARS[120]= 0x0077
    GSM7CHARS[121]= 0x0078
    GSM7CHARS[122]= 0x0079
    GSM7CHARS[123]= 0x007A
    GSM7CHARS[124]= 0x00E4
    GSM7CHARS[125]= 0x00F6
    GSM7CHARS[126]= 0x00F1
    GSM7CHARS[127]= 0x00FC
    GSM7CHARS[128]= 0x00E0
    GSM7CHARS[129]= -1
    GSM7CHARS[130]= -1
    GSM7CHARS[131]= -1
    GSM7CHARS[132]= -1
    GSM7CHARS[133]= -1
    GSM7CHARS[134]= -1
    GSM7CHARS[135]= -1
    GSM7CHARS[136]= -1
    GSM7CHARS[137]= -1
    GSM7CHARS[138]= -1
    GSM7CHARS[139]= -1
    GSM7CHARS[140]= -1
    GSM7CHARS[141]= -1
    GSM7CHARS[142]= -1
    GSM7CHARS[143]= -1
    GSM7CHARS[144]= -1
    GSM7CHARS[145]= -1
    GSM7CHARS[146]= -1
    GSM7CHARS[147]= -1
    GSM7CHARS[148]= -1
    GSM7CHARS[149]= -1
    GSM7CHARS[150]= -1
    GSM7CHARS[151]= -1
    GSM7CHARS[152]= -1
    GSM7CHARS[153]= -1
    GSM7CHARS[154]= -1
    GSM7CHARS[155]= -1
    GSM7CHARS[156]= -1
    GSM7CHARS[157]= -1
    GSM7CHARS[158]= -1
    GSM7CHARS[159]= -1
    GSM7CHARS[160]= -1
    GSM7CHARS[161]= -1
    GSM7CHARS[162]= -1
    GSM7CHARS[163]= -1
    GSM7CHARS[164]= -1
    GSM7CHARS[165]= -1
    GSM7CHARS[166]= -1
    GSM7CHARS[167]= -1
    GSM7CHARS[168]= -1
    GSM7CHARS[169]= -1
    GSM7CHARS[170]= -1
    GSM7CHARS[171]= -1
    GSM7CHARS[172]= -1
    GSM7CHARS[173]= -1
    GSM7CHARS[174]= -1
    GSM7CHARS[175]= -1
    GSM7CHARS[176]= -1
    GSM7CHARS[177]= -1
    GSM7CHARS[178]= -1
    GSM7CHARS[179]= -1
    GSM7CHARS[180]= -1
    GSM7CHARS[181]= -1
    GSM7CHARS[182]= -1
    GSM7CHARS[183]= -1
    GSM7CHARS[184]= -1
    GSM7CHARS[185]= -1
    GSM7CHARS[186]= -1
    GSM7CHARS[187]= -1
    GSM7CHARS[188]= -1
    GSM7CHARS[189]= -1
    GSM7CHARS[190]= -1
    GSM7CHARS[191]= -1
    GSM7CHARS[192]= -1
    GSM7CHARS[193]= -1
    GSM7CHARS[194]= -1
    GSM7CHARS[195]= -1
    GSM7CHARS[196]= -1
    GSM7CHARS[197]= -1
    GSM7CHARS[198]= -1
    GSM7CHARS[199]= -1
    GSM7CHARS[200]= -1
    GSM7CHARS[201]= -1
    GSM7CHARS[202]= -1
    GSM7CHARS[203]= -1
    GSM7CHARS[204]= -1
    GSM7CHARS[205]= -1
    GSM7CHARS[206]= -1
    GSM7CHARS[207]= -1
    GSM7CHARS[208]= -1
    GSM7CHARS[209]= -1
    GSM7CHARS[210]= -1
    GSM7CHARS[211]= -1
    GSM7CHARS[212]= -1
    GSM7CHARS[213]= -1
    GSM7CHARS[214]= -1
    GSM7CHARS[215]= -1
    GSM7CHARS[216]= -1
    GSM7CHARS[217]= -1
    GSM7CHARS[218]= -1
    GSM7CHARS[219]= -1
    GSM7CHARS[220]= -1
    GSM7CHARS[221]= -1
    GSM7CHARS[222]= -1
    GSM7CHARS[223]= -1
    GSM7CHARS[224]= -1
    GSM7CHARS[225]= -1
    GSM7CHARS[226]= -1
    GSM7CHARS[227]= -1
    GSM7CHARS[228]= -1
    GSM7CHARS[229]= -1
    GSM7CHARS[230]= -1
    GSM7CHARS[231]= -1
    GSM7CHARS[232]= -1
    GSM7CHARS[233]= -1
    GSM7CHARS[234]= -1
    GSM7CHARS[235]= -1
    GSM7CHARS[236]= -1
    GSM7CHARS[237]= -1
    GSM7CHARS[238]= -1
    GSM7CHARS[239]= -1
    GSM7CHARS[240]= -1
    GSM7CHARS[241]= -1
    GSM7CHARS[242]= -1
    GSM7CHARS[243]= -1
    GSM7CHARS[244]= -1
    GSM7CHARS[245]= -1
    GSM7CHARS[246]= -1
    GSM7CHARS[247]= -1
    GSM7CHARS[248]= -1
    GSM7CHARS[249]= -1
    GSM7CHARS[250]= -1
    GSM7CHARS[251]= -1
    GSM7CHARS[252]= -1
    GSM7CHARS[253]= -1
    GSM7CHARS[254]= -1
    GSM7CHARS[255]= -1
    GSM7CHARS[256]= -1
     
    StringSource est une chaîne = "*222#"
    StringBin est une chaîne = ""
    StringResult est une chaîne = ""
    TempBin est une chaîne
    i, j est un entier
    c est un entier sans signe sur 1 octet
     
    FOR i = Taille(StringSource) _TO_ 1 STEP -1
    	c = Asc(StringSource[[i]])
    	FOR j=1 _TO_ Dimension(GSM7CHARS)
    		IF GSM7CHARS[j] = c THEN
    			StringBin += EnBinaire(NumériqueVersChaîne(c, "02x"), True)[[2 sur 7]] //on ne prend que 7 bits 
    			SORTIR
    		END
    	END
    END
    IF Taille(StringBin) > 0 THEN
    	//from7BitBinaryToHexReversed
    	j = modulo(Taille(StringBin), 8)
    	IF j > 0 THEN StringBin = Répète("0", 8-j) + StringBin
    	j = Taille(StringBin)/8
    	Trace(StringBin)
    	FOR i=1 _TO_ j
    		TempBin = StringBin[[((i-1)*8)+1 sur 8]]
    		StringResult = NumériqueVersChaîne(Val(TempBin, 2), "02X") + StringResult
    	END
    END
     
    Trace(StringResult)

    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
    34
    35
     
    FUNCTION EnBinaire(pEnHexa est une chaîne, pCompleter est un  booléen = False):chaîne
    n, p sont des entiers
    cBin est un tableau associatif de chaîne
    cBin["0"] = "0000"
    cBin["1"] = "0001"
    cBin["2"] = "0010"
    cBin["3"] = "0011"
    cBin["4"] = "0100"
    cBin["5"] = "0101"
    cBin["6"] = "0110"
    cBin["7"] = "0111"
    cBin["8"] = "1000"
    cBin["9"] = "1001"
    cBin["A"] = "1010"
    cBin["B"] = "1011"
    cBin["C"] = "1100"
    cBin["D"] = "1101"
    cBin["E"] = "1110"
    cBin["F"] = "1111"
     
    R est une chaîne = ""
    p = Taille(pEnHexa)
    IF p < 1 THEN RENVOYER ""
    FOR n=1 _TO_ p
    	R += cBin[Majuscule(pEnHexa[[n]])]
    END
     
    IF NOT pCompleter THEN
    	WHILE Gauche(R,1) = "0"
    		R = R[[2 A ]]
    	END
    END
     
    RENVOYER R

  7. #7
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2012
    Messages : 144
    Par défaut
    Bonsoir,

    Merci Tatayo
    Merci PhilDeDakar pour l'effort, je vais essayer d'exploiter vos propositions puis je vous reviens
    C'est gentil

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

Discussions similaires

  1. Conversion ASCII vers Hexa
    Par PtiBruno dans le forum C
    Réponses: 3
    Dernier message: 25/02/2008, 09h40
  2. Convertion ASCII vers UNICODE
    Par blackstrobe dans le forum Langage
    Réponses: 4
    Dernier message: 27/07/2007, 20h48
  3. Migration WinDev 7 vers WinDev 8
    Par amarni dans le forum WinDev
    Réponses: 7
    Dernier message: 13/10/2006, 18h58
  4. Conversion texte Ascii vers Image ou Pdf
    Par davydreyAXESS dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2006, 15h45
  5. conversion ASCII vers EBCEDIC
    Par Mü dans le forum C++Builder
    Réponses: 1
    Dernier message: 04/12/2005, 19h06

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