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 :

Mon sous-programme ne répond pas lors de l'appel


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Mon sous-programme ne répond pas lors de l'appel
    Bonjour,

    Tout est dans le titre

    Le sous-programme en question :
    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
     
    /* Il renvoie la valeur de la frequence choisie par une entreprise
     à partir de la lecture d'un fichier txt et grâce au numéro de 
    l'entreprise */
     
    public static string OBTENIR_FREQUENCE_ENTREPRISE(string Un_Num_Entreprise)
            {
                foreach (string[] Entreprise in Liste)
                {
                    if (Un_Num_Entreprise == Entreprise[0])
                        {Frequence = Entreprise[13];
                        Console.WriteLine("SP: " + Frequence);
                        }
                }
                return Frequence;
            }
    Pourtant, lors de l'appel, j'ai bien mis un paramètre en entrée :S

    Merci de m'aider

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 311
    Points : 337
    Points
    337
    Par défaut
    Déjà ce n'est pas un sous-programme, mais une fonction.

    Ensuite, que doit-on comprendre par ne répond pas?

    Et pour terminer, comment peut-on deviner ce qui se passe si on a même pas le code qui va appeler cette fonction? (que sont Liste, Frequence par exemple? où sont-ils déclarés?)

    Sinon, tu peux simplifier ton code comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public static string OBTENIR_FREQUENCE_ENTREPRISE(string Un_Num_Entreprise)
            {
                foreach (string[] Entreprise in Liste)
                {
                    if (Un_Num_Entreprise == Entreprise[0])
                        {
                        Frequence = Entreprise[13];
                        Console.WriteLine("SP: " + Frequence);
                        return Frequence;
                        }
                }
            }
    Tu quittes la fonction dès que la valeur est trouvée.

    Et par pitié, stop aux majuscules, ça n'a aucun intérêt

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Ce que j'entends par "ne répond pas" (terme mal choisi, je suis d'accord), c'est lorsque je tape le nom de ma fonction dans le programme principal et que celui-ci ne le fait pas s'exécuter.

    Liste et Frequence sont des variables globales.
    Liste est un ArrayList contenant les informations extraites à partir de la lecture d'un fichier txt.
    Frequence est un string, représentant la fréquence qu'une entreprise a choisie.
    Le but de mon programme est de générer un rapport en fonction d'une fréquence qu'une entreprise aura préalablement choisie.

    Le code appelant la fonction est le suivant :

    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
     
            static void Main(string[] args)
            {
                Date = DateTime.Today;
     
                SPLITTING_FICHIER_DATA(@"C:\WORK\Programme\Liste_Entreprises_Test.txt");
                LISTER_NUMERO_ENTREPRISES(Liste);
                foreach (string NumE in Liste_Num_Entreprises)
                    {
                    switch (OBTENIR_FREQUENCE_ENTREPRISE(NumE))
                        {
                        case "Hebdomadaire":
                            if (OBTENIR_JOUR_AUJOURDHUI() == OBTENIR_JOUR_ENVOI(NumE))
                                {
                                OBTENIR_NUM_JOUR(Date);
                                for (I = OBTENIR_NUM_JOUR(Date_Debut_Rapport); I <= OBTENIR_NUM_JOUR(Date_Fin_Rapport); I++)
                                    {
                                    if (File.Exists(@"C:\WORK\Programme\DATA\" + NumE + "." + I) == true)
                                        {
                                        Nom_Fichier_DATA = NumE + "." + I;
                                        VENTILATION(Nom_Fichier_DATA);
                                        }
                                    }
                                }
                                break;
     
                        case "Mensuelle":
                            if (PREMIER_DU_MOIS() == 23)
                                {
                                for (I = OBTENIR_NUM_JOUR(Date_Debut_Rapport); I <= OBTENIR_NUM_JOUR(Date_Fin_Rapport); I++)
                                    {
                                    if (File.Exists(@"C:\WORK\Programme\DATA\" + NumE + "." + I) == true)
                                        {
                                        Nom_Fichier_DATA = NumE + "." + I;
                                        VENTILATION(Nom_Fichier_DATA);
                                        }
                                    }  
                                }
                                break;
     
                        case "":
                            Console.WriteLine("vide");
                            break;
     
                        default:
                            Console.WriteLine("default");
                            break;
                        } // switch  
                    ARCHIVAGE();
                    } // foreach
            } // static void Main
    Ton code simplifié ne fonctionne pas, que se passe-t-il si ta fonction ne renvoie aucune valeur, si le champ de ta table Entreprise est vide ??

    Quant aux majuscules, demande leur intérêt à mon tuteur de stage.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 84
    Points : 75
    Points
    75
    Par défaut
    Je sais c'est stupide comme question mais as-tu lancé un bon debug ligne par ligne de ton programme pour voir si il y a bien ce que tu attends dans tes variables ?

    Car la, les possibilités d'erreurs sont nombreuses et la raison la plus probable pour laquelle tu as l'impression que ta fonction n'est jamais appelé est que ton programme ne rentre jamais dans ta boucle "foreach", ne trouvant aucun "NumE" dans ta "Liste_Num_Entreprises"

Discussions similaires

  1. [PDO] Mon sous-programmes et sa liaison pdo/php
    Par vaneck dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 26/02/2011, 13h57
  2. mon sous menu ne reste pas à l'écran
    Par LOUSHEER dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 11/02/2011, 12h47
  3. validateJarFile - Mon projet Web ne répond pas
    Par remyli dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 15/04/2009, 17h42
  4. Mon sous-menu n'affiche pas le bon fond au passage de la souris
    Par luna6 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 09/03/2009, 09h33
  5. Mon TK ne me répond pas!
    Par the_dorian dans le forum Tkinter
    Réponses: 3
    Dernier message: 25/02/2008, 18h53

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