Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 9 sur 9
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    juillet 2002
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : juillet 2002
    Messages : 285
    Points : 101
    Points
    101

    Par défaut [VB.NET] Obtenir un Char a partir de son ASCII Decimal ...

    Bonjour,

    J'aimerais savoir comment il faut faire en VB pour obtenir un char à partir de son code ASCII ...

    Exemple : 65 = A !

    1) J'ai bien pense à passer par l'Enum System.Windows.Forms.Keys mais ca m'embête d'avoir à faire une référence IHM sur un composant non IHM ...

    2) Y'a bien Chr() mais bon c du VB6 ...

    Merci d'avance !

  2. #2
    Membre Expert
    Avatar de Piotrek
    Inscrit en
    mars 2004
    Messages
    868
    Détails du profil
    Informations forums :
    Inscription : mars 2004
    Messages : 868
    Points : 1 588
    Points
    1 588

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    juillet 2002
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : juillet 2002
    Messages : 285
    Points : 101
    Points
    101

    Par défaut

    Merci !

    Bon, la c sur c'était pas compliqué ...

    Merci encore !

    Je profite (j'exagère pte)

    J'essaye de générer à la voler :
    A
    B
    [...]
    AA
    AB ...

    Je n'arrive qu'a générer AA puis BB ...

  4. #4
    Membre chevronné

    Inscrit en
    septembre 2003
    Messages
    651
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 651
    Points : 663
    Points
    663

    Par défaut

    Ben ton algo est mauvais.
    C'est à peu près tout ce qu'on peut dire avec la grande quantité d'informations que tu donnes :)
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  5. #5
    Membre Expert
    Avatar de Piotrek
    Inscrit en
    mars 2004
    Messages
    868
    Détails du profil
    Informations forums :
    Inscription : mars 2004
    Messages : 868
    Points : 1 588
    Points
    1 588

    Par défaut

    moi pas comprendre

  6. #6
    Membre habitué
    Inscrit en
    janvier 2003
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : janvier 2003
    Messages : 142
    Points : 111
    Points
    111

    Par défaut

    comme ça a la volée je dirais:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    int shift = 65;
    int n = 'longueur max des mots à générer';
    for (int i=0; i<n*26; i++)
    {
         int len = §(int) (i/26)) + 1;
         int temp = i;
         string res="";
          for (int j=0; j <len; j++)
          {
                 res = Convert.ToChar((temp-(n-j)*26)+shift) + res;
                  temp -= 26;
          } 
          Console.WriteLine(res);
    }
    mais c'est très approximatif et pas tres beau je touve

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    juillet 2002
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : juillet 2002
    Messages : 285
    Points : 101
    Points
    101

    Par défaut

    Alors je commence par m'excuser ...

    J'ai effectivement oublier une pêtite partie ... donc il en manquait un bout ...

    Mon algo était le suivant :
    Code :
    1
    2
    3
    4
    5
    6
    7
     
    Do
       str &= System.Convert.ToChar(65 + (int Mod 26))
     
       int -= 26
     
    Loop While int  >= 0

    ce qui fait qu'à 27 : 27 Mod 26 = 1 (B) et 27 - 26 = 1 B !!

    Bref ...

    En fait, plutot que de générer A ... AA ... AB ... ZZ ...

    Je vais générer AAA, AAB, AAC ...

    26 * 26 * 26 = 17576 possibilités ... je devrais pouvoir voir venir !

    Merci et encore désolé ...

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    juillet 2002
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : juillet 2002
    Messages : 285
    Points : 101
    Points
    101

    Par défaut

    Alors, j'ai trouvé un algo qui répond à mon besoin

    Code :
    1
    2
    3
    4
    5
    6
     
    Do
      Dim mod As Int32 = (indexMod 26)
      index = Math.Max(Convert.ToInt32((index - mod) / 26), 0)
      str = System.Convert.ToChar(65 + mod) & str
    Loop While index > 0
    Bon c pas parfait car il Z --> BA, BB, BC ... mais bon c pas mal ...

    Merci encore !

  9. #9
    Inscrit Avatar de bilb0t
    Inscrit en
    décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : décembre 2003
    Messages : 378
    Points : 215
    Points
    215

    Par défaut

    Tu peux faire:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int i=... /le nbr que tu veux transformer
    string s = "";
    do
    {
      s+=convert.ToChar(65+(i%26));
       i /= 26;
    }while(i>0)
     
    //et ici t'as plus qu'à retrourner ton string.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •