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] [Débutant] : tableau ou liste?


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Par défaut [VB.NET] [Débutant] : tableau ou liste?
    Bonjour à tous,

    Je suis débutant et j'ai besoin d'aide.

    J'ai une liste de valeur constante que j'aimerai insérer dans mon application. Je ne sait pas du tout par ou commencer. J'explique:

    J'ai un texte box dans lequel l'utilisateur doit entrer un nombre de 0 à 1000, l'application doit récupérer ce nombre et chercher dans une liste ou un tableau les 2 valeurs associée a celui-ci et les traiter séparément.

    Ex. de tableau :
    1 = 110, 00
    2 = 99,00
    3 = 93,00
    ...
    13 = 72, 20
    14 = 71, 01
    15 = 70, 20
    ...
    999 = 12,46
    1000 = 12,42

    Je doit utiliser ces valeur pour envoyer une commande en HEX:

    Si l'utilisateur entre "1000" l'application doit récupérer HEX(12) et HEX(42) et envoyer la commande: "21 0C 2A"


    Quelqu'un peut me donner un coup de main??

    Merci à l'avance

  2. #2
    AP
    AP est déconnecté
    Membre chevronné
    Avatar de AP
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 480
    Par défaut
    Hello,
    Perso je me serais fait une petite classe pouvant contenir tes 2 valeurs
    public class ..

  3. #3
    AP
    AP est déconnecté
    Membre chevronné
    Avatar de AP
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 480
    Par défaut
    Hello,
    Perso je me serais fait une petite classe pouvant contenir tes 2 valeurs
    public class ..
    property 1...
    property 2...
    end class

    et j'aurais utilisé une arraylist si il n'y a pas de trou dans tes indices et une hashtable si il y en a.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 238
    Par défaut
    Perso j'utiliserais une ArrayList contenant une liste de String.
    Au rang 1000 tu stockeras la valeur "12,42" par exemple.

    Apres pour construire ta requete Hexa il te faut utiliser les propriétés de la classe String. Tu peux couper la chaine avant et après la ",". De cette façon tu recupere les deux valeur SOUS forme de String à envoyer.

    La construction de la requete Hexa doit se faire elle via un autre type "byte". Litéralement en anglais "octect" .

    De cette manière toto prend la valeur Hexa(41).

    Je travail sur un projet et j'utilise pas mal les ecritures Hexadecimales je te post ma classe me permetant de travailler dessus après à toi de l'adapter.

    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
     
           //Donne la valeur Décimal de deux octects Hexa
            public static int DoubleByteToInt(Byte PoidFort, Byte PoidFaible)
            {
                Byte[] Buffer = new Byte[2];
                Buffer[0] = PoidFort;
                Buffer[1] = PoidFaible;
                return HexaToInt(Buffer, 0, 2);
            }
     
            //Donne la valeur Décimal de X octect dans une Trame
            public static int HexaToInt(Byte[] Buffer, int debut, int longueur)
            {
                int Somme = 0;
                int facteur = 0;
                Char currentCaractere;
                Byte[] WorkingBuffer = new Byte[longueur];
     
                for (int i = 0; i < longueur; i++)
                {
                    WorkingBuffer[i] = Buffer[debut + i];
                }
                String tmpString = TrameToString(WorkingBuffer).Replace(" ","");
                for (int j = tmpString.Length - 1; j >= 0; j--)
                {
                    currentCaractere = tmpString[j];
                    switch (currentCaractere)
                    {
                        case '1': Somme += 1 * puissance(16, facteur); break;
                        case '2': Somme += 2 * puissance(16, facteur); break;
                        case '3': Somme += 3 * puissance(16, facteur); break;
                        case '4': Somme += 4 * puissance(16, facteur); break;
                        case '5': Somme += 5 * puissance(16, facteur); break;
                        case '6': Somme += 6 * puissance(16, facteur); break;
                        case '7': Somme += 7 * puissance(16, facteur); break;
                        case '8': Somme += 8 * puissance(16, facteur); break;
                        case '9': Somme += 9 * puissance(16, facteur); break;
                        case 'A': Somme += 10 * puissance(16, facteur); break;
                        case 'B': Somme += 11 * puissance(16, facteur); break;
                        case 'C': Somme += 12 * puissance(16, facteur); break;
                        case 'D': Somme += 13 * puissance(16, facteur); break;
                        case 'E': Somme += 14 * puissance(16, facteur); break;
                        case 'F': Somme += 15 * puissance(16, facteur); break;
                    }
                    facteur++;
                }
                return Somme;
            }
     
            //Calcul la puissance
            static int puissance(int nombre, int puissance)
            {
                int Somme = nombre;
                if (puissance == 0) return 1;
                for (int i = 0; i < puissance - 1; i++)
                {
                    Somme = Somme * nombre;
                }
                return Somme;
            }
     
            //transforme une trame sous format String
            public static String TrameToString(Byte[] pTrame)
            {
                String TrameFormatString = "";
                for (int i = 0; i < pTrame.Length; i++)
                {
                    TrameFormatString += ToHexString(pTrame[i]);
                    if (i != (pTrame.Length-1) ) TrameFormatString += " ";
                }
                return TrameFormatString;
            }
     
            Transforme un Octect sous format String
            static String ToHexString(byte byte1)
            {
                return byte1.ToString("X2", null);
            }
    Bonne chance si tu as des questions hésite pas.

Discussions similaires

  1. [ASP.NET/C#] Croiser deux listes dans un tableau
    Par Vinceee38 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 25/09/2011, 21h12
  2. Réponses: 2
    Dernier message: 29/06/2007, 14h49
  3. [Débutant]tableau de formulaire
    Par minique dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 13/10/2004, 13h57
  4. [Débutant][JSP] récupération liste choix multiple
    Par Jovial dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/05/2004, 13h59
  5. Réponses: 3
    Dernier message: 09/01/2004, 14h37

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