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 :

Point bloquant/ stratégie pour coder mon problème [Débutant]


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut Point bloquant/ stratégie pour coder mon problème
    Bonjour,

    Dans mon application je choisis un fichier grâce à un OpFdialog et dans le nom de se fichier je récupère un numéro de série, ce numéro de série me sert pour faire le lien avec un nom de véhicule, hors pour l'instant j'ai fais une fonction dans mon code et rentré les noms de véhicule dans le code, je souhaiterais que ces correspondances numéros de séries/véhicule sois modifiable par un opérateur dans un fichier.
    En clair les numéro de série récupéré dans le nom du fichier peuvent changer... l'opérateur peut rentrer un seul numéro de série, ou bien un intervalle là ou je bloque c'est comment faire pour distinguer un intervalle d'un numéro unique.
    Je pensais faire un fichier xlsx avec une colonne pour chaque série de véhicule et les numéros de séries dans ces colonnes.


    Bonne journée.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    excel n'est pas une base de données ...

    sinon une table avec les numéros de séries
    et une autre table avec les intervalles (préfixe, début, fin) (genre A, 1, 8)
    au démarrage tu peux lire les intervalles et les transformer en x numéro de série avec une boucle for allant de début à fin en concaténant avec le préfixe
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Bonjour,

    Merci pour votre réponse, j'ai opté pour un fichier csv, mais j'ai un petit problème mon fichier se présente comme ça.

    UA;4701;4702;4703;4704;4705;4706;4707;4708;4709;4710;4711;4712;4713;4714;4715;4716;4717;4718;4719;4720;4721;4722;4723;4724;4725;4726;4727;4728;4729;4730;4731
    UH;00801;00802;00803;00804;00805;00806;00807;00808;00809;00810
    UF;0811;0812;0813;0814;0815;0816;0817;0818;0819;0820;0821;0822;0823;0824;0825

    le but est de parcourir chaque ligne et de vérifier que le numéro de série soit présent dans une des lignes, et lorsque je suis sur la bonne ligne je renvois le première élément de la ligne qui correspond à la série.

    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
    private string Verification(string SerialNumber)
            {
                int numeroSerie = int.Parse(SerialNumber);
                string serial = "";
     
                if (File.Exists("parcTGV.csv"))
                {
     
                    // On vérifie si le fichier existe avant de l'ouvrir
                    StreamReader line = new StreamReader("parcTGV.csv");
                    string lines = line.ReadLine();
                    // on parcours les lignes jusqu'à la fin du fichier
                    while (lines != null)
                    {
                        List<string> Tlines = new List<string>();
                        Tlines = lines.Split(';').ToList();
                        string serie = Tlines[0];
                        Tlines.RemoveAt(0);
     
                        /*for(int i=1;i<=Tlines.Count;i++)
                        {
                            int num = int.Parse(Tlines[i]);
     
                        }*/
                        foreach (var x in Tlines)
                        {
                            int num = int.Parse(x);
                            if(num==numeroSerie)
                            {
                                serial = serie;
     
                            }
     
                        }               
                    }
     
                }
    Le programme ne me revoit pas d'erreur il boucle à l'infini, avant j'avais essayé de faire un foreach sans supprimer le première éléments, mais je pouvais pas convertir le premier élément en int du coup ça plantait....
    Ca parait bateau mais je trouves pas de solutions, mais je continue de chercher

    Bonne journée

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Il manque un appel à lines = line.ReadLine(); à la fin de la boucle while

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Non ça ne fonctionne pas j'ai déjà essayé, je veux juste parcourir les nombres de chaque ligne et dès que je tombe sur le bon je renvois la série en indice zéro de la liste.

  6. #6
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 898
    Points : 1 915
    Points
    1 915
    Par défaut
    Je t'assure que sans le bout de code de popo tu vas boucler à l'infinie sur ta première ligne.

  7. #7
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Si tu ne parviens pas à lire un CSV avec un SreamReader, passe par File.ReadLines et ce sera plus simple.

    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
    foreach(string line in File.ReadLines(csvFileName))
    {
        var Tlines = line.Split(';').ToList();
        string serie = Tlines[0];
        Tlines.RemoveAt(0);
     
        foreach (var x in Tlines)
        {
            int num = int.Parse(x);
            if(num==numeroSerie)
            {
                serial = serie;
            }
       }  
    }

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Bonjour,

    Je reviens tardivement j'ai eu pas mal de cours durant ces deux dernières semaines...

    J'ai résolu le problème grâce à vous. Merci

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

Discussions similaires

  1. [PowerShell] Script comparaison de nom ou autre méthode pour régler mon problème svp
    Par toinoinfo dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 28/09/2018, 11h12
  2. Java ou Python pour coder mon "Ninjadex"
    Par Lord Mystirio dans le forum Débuter
    Réponses: 2
    Dernier message: 13/03/2011, 18h45
  3. Conseils pour coder et probléme entre python 2.6 et 3.1
    Par Debian python dans le forum Général Python
    Réponses: 8
    Dernier message: 20/08/2010, 00h54
  4. [VBA-E] Problème pour coder une boucle
    Par lord-asriel dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/03/2007, 10h10
  5. [VB6]problèmes pour executer mon projet en VB
    Par Walowalo dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 29/04/2006, 19h27

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