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

C# Discussion :

Insertion automatique dans un tableau


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Avril 2009
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 96
    Par défaut Insertion automatique dans un tableau
    Bonjour,

    je souhaite faire une fonction qui me permette d'insérer le contenue d'une saisie dans un tableau.

    Je doit dans un premier temps demander à l'utilisateur de généré le nombre de poste qu'il souhaite dans le tableau.
    Ensuite il doit remplir chacun d'entre eux.

    je bloque pour l'insertion, pouvez vous m'aider ?

    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
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace ConsoleApplication3
    {
        class Program
        {
     
            static void initTab (string taille) // fonction qui permet de définir la taille du tableau et generer insertion
            {
                Console.WriteLine("voici la taille du tableau que vous avez declaré " + taille);
                Convert.ToInt32(taille);
                int[] tableau;                                          // declaration du tableau
                tableau = new int[Convert.ToInt32(taille)];             // Creation du tableau
                Console.Write(" votre tableau fait " + tableau.Length + " caracteres");
                int i = 0;
                string saisie_tableau;
                while (i < Convert.ToDouble(taille))
                {
                    Console.WriteLine(" veuillez faire votre saisie ");
                    i++;
                    saisie_tableau = Console.ReadLine();
                }
     
     
            }
     
     
            static void GetInteger(string saisie) // fonction getinteger qui permet de lire une entree saisie
            {
               Console.WriteLine(" merci d'avoir saisie votre nom, votre nom est "  + saisie);
            }
     
     
            static void Main(string[] args) // fonction main 
            {
                string saisie; // premiere saisie
                string taille;  // nombre de case tableau
                string elements; // elements du tableau 
                string saisie_tableau; // variable de saisie dans un tableau
     
                Console.WriteLine(" saisie ton nom stp");
                saisie = Console.ReadLine();
                GetInteger(saisie);
     
                Console.WriteLine("la taille svp ( du tableau )");
                taille = Console.ReadLine();
                initTab(taille);
     
                Console.ReadKey();
     
            }
        }
    }

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    tu y étais presque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
             while (i < Convert.ToDouble(taille))
                {
                    Console.WriteLine(" veuillez faire votre saisie ");
                    saisie_tableau = Console.ReadLine();
                    int valeur = Int32.Parse(saisie_tableau);
                    tableau[i] = valeur;
                    i++;
                }
    Note bien que l'incrémentation de i se fait à la fin de la boucle, sinon tu auras une position d'avance au moment d'écrire dans le tableau.

    Autres améliorations possibles :

    - utilise Int32.TryParse pour convertir une chaine en nombre, ça permet de détecter une saisie incorrecte sans générer d'exception
    - stocke la taille du tableau dans une variable de type int, plutôt que de refaire la conversion à chaque fois

  3. #3
    Membre éprouvé
    Inscrit en
    Avril 2009
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 96
    Par défaut erreur
    Voici mon nouveau code donc et il ne veut toujours pas prendre ma boucle
    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
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace ConsoleApplication3
    {
        class Program
        {
     
            static void initTab (string taille) // fonction qui permet de définir la taille du tableau et generer insertion
            {
                Console.WriteLine("voici la taille du tableau que vous avez declaré " + taille);
                Convert.ToInt32(taille);
                int[] tableau;                                          // declaration du tableau
                tableau = new int[Convert.ToInt32(taille)];             // Creation du tableau
                Console.Write(" votre tableau fait " + tableau.Length + " caracteres");
                int i = 0;
                string saisie_tableau;
                while (i < Convert.ToDouble(taille))
                {
                    Console.WriteLine(" veuillez faire votre saisie ");
                    saisie_tableau = Console.ReadLine();
                    int valeur = int.Parse(saisie_tableau);
                    tableau[i] = valeur;
                    i++;
                }
     
     
            }
     
     
            static void GetInteger(string saisie) // fonction getinteger qui permet de lire une entree saisie
            {
               Console.WriteLine(" merci d'avoir saisie votre nom, votre nom est "  + saisie);
            }
     
     
            static void Main(string[] args) // fonction main 
            {
                string saisie; // premiere saisie
                string taille;  // nombre de case tableau
                string elements; // elements du tableau 
                string saisie_tableau; // variable de saisie dans un tableau
     
                Console.WriteLine(" saisie ton nom stp");
                saisie = Console.ReadLine();
                GetInteger(saisie);
     
                Console.WriteLine("la taille svp ( du tableau )");
                taille = Console.ReadLine();
                initTab(taille);
     
                Console.ReadKey();
     
            }
        }
    }

    Il me demande de faire ma première saisie puis il plante ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                    int valeur = int.Parse(saisie_tableau);
    Il me dit
    Assurez vous que le format des arguments de votre methode est correct.

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Tu dois ne pas avoir que des chiffres dedans (il doit rester espaces, retours à la ligne ou autres)

  5. #5
    Membre éprouvé
    Inscrit en
    Avril 2009
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 96
    Par défaut
    excuse moi mais je comprends pas la

  6. #6
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Cela signifie que la chaîne d'entrée (saisie_tableau) n'est pas une chaîne représentant un entier. Donc la conversion échoue.

    Tu devrais plutôt utiliser la méthode Int32.TryParse comme l'a indiqué Tomlev, et boucler jusqu'à ce que la saisie utilisateur soit valide avant d'aller plus loin.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par bibifoke Voir le message
    excuse moi mais je comprends pas la
    PitMaverick78 a raison, t'as dû entrer des caractères qui ne sont pas reconnus comme des chiffres (espaces, lettres etc).

    Pour ne avoir des problèmes de conversions, t'as deux solutions:
    • tu peux mettre un try catch englobant l'instruction pour gérer les erreurs de conversion et dans le bloc catch tu signales à l'utilisateur que la chaîne entrée ne correspond pas à un nombre et lui reposer la question jusqu'à ce que la conversion se passe bien.
    • tu peux la méthode TryParse (tomlev te l'a proposé dans mon post précédent) au lieu de la méthode Parse.

Discussions similaires

  1. Utilisation de l'insertion automatique dans Word
    Par Kingoo dans le forum Débuter
    Réponses: 1
    Dernier message: 04/07/2008, 18h43
  2. Réponses: 7
    Dernier message: 19/03/2008, 14h31
  3. Insertion vbTab dans un tableau
    Par ataya dans le forum VBA Word
    Réponses: 4
    Dernier message: 12/02/2008, 13h38
  4. pb insertion automatique dans bd
    Par nicocaine dans le forum Windows
    Réponses: 1
    Dernier message: 26/07/2007, 15h02
  5. Réponses: 1
    Dernier message: 25/10/2006, 18h06

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