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

Windows Forms Discussion :

[VB.NET] Obtenir un Char a partir de son ASCII Decimal ...


Sujet :

Windows Forms

  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 : 139
    Points
    139
    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 chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904

  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 : 139
    Points
    139
    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 éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    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 chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    moi pas comprendre

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 141
    Points : 139
    Points
    139
    Par défaut
    comme ça a la volée je dirais:
    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
     
    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 : 139
    Points
    139
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 139
    Points
    139
    Par défaut
    Alors, j'ai trouvé un algo qui répond à mon besoin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 378
    Points : 283
    Points
    283
    Par défaut
    Tu peux faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

Discussions similaires

  1. [VB.NET] Obtenir le numéro de la semaine d'une date
    Par alain&&thomas dans le forum Windows Forms
    Réponses: 9
    Dernier message: 07/09/2009, 17h54
  2. [VB.NET][MySQL]Obtenir une string a partir d'un SELECT !
    Par Nofrag dans le forum Accès aux données
    Réponses: 3
    Dernier message: 14/01/2007, 20h54
  3. [VB.Net] Obtenir une date à partir d'un numero de semaine
    Par tonysky dans le forum Windows Forms
    Réponses: 4
    Dernier message: 03/01/2007, 08h57
  4. [VB.NET] Obtenir un objet à partir de son nom
    Par bart64 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 31/12/2006, 12h37
  5. [VB.NET] Pb sur update à partir champs Textbox
    Par patdez dans le forum ASP.NET
    Réponses: 5
    Dernier message: 28/06/2006, 09h28

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