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 :

Traitement avancé de chaine de caractère


Sujet :

Windows Forms

  1. #1
    Débutant
    Inscrit en
    Mars 2006
    Messages
    492
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 492
    Points : 94
    Points
    94
    Par défaut Traitement avancé de chaine de caractère
    Bonjour,

    j'ai une problématique sur le traitement de chaine de caractere :
    j'ai deux fichier de la forme

    le 1er :
    matricule; nom ; prenom ; adresse
    1223;FONEAU;Julien;12 rue riffuelhes;type1
    1223;FONEAU;Julien;12 rue riffuelhes;type2
    334556;didou;Marise,

    le 2ème:
    matricule; prix
    1223;prix1
    1223;prix2

    Je veux faire le traitement ligne par ligne des deux fichiers dont les matricule sont identiques et de récupéré une table de fusion,
    1223;FONEAU;Julien;12 rue riffuelhes;type1;type2;prix1;prix2.

    aidez moi a résoudre cet énorme problème, merci infiniment.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Points : 299
    Points
    299
    Par défaut
    pourquoi ne fais tu pas plutôt des fichiers XML (si tu en as la possibilité) et tu fais du LINQ dessus.

  3. #3
    Débutant
    Inscrit en
    Mars 2006
    Messages
    492
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 492
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par skunkies Voir le message
    pourquoi ne fais tu pas plutôt des fichiers XML (si tu en as la possibilité) et tu fais du LINQ dessus.
    comment peut on faire un fichier XML?
    je travail sous console, aidez moi svp, merci beaucoup.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Points : 299
    Points
    299
    Par défaut
    voici un exemple (pas de moi) de comment creer un fichier XML
    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
    public static void Demo2()
            {
                XDocument doc = new XDocument(
                    new XDeclaration("1.0", "utf-8", "yes"),
                    new XComment("Liste des clients"),
                    new XElement("clients",
                     new XElement("client",
                         new XAttribute("ID", 2),
                         new XElement("société", "e-naxos"),
                         new XElement("site", "www.e-naxos.com")),
                     new XElement("client",
                         new XAttribute("ID", 5),
                         new XElement("société", "Microsoft"),
                         new XElement("site", "www.Microsoft.com"))));
     
                doc.Save("ClientsDemo.xml");
     
                Console.WriteLine(doc);
                Console.ReadLine();
            }
    Cela va te permettre de creer tes 2 fichiers xml.
    Ensuite il faut que tu regardes comment utiliser LINQ to XML pour requeter ton fichier et fusionner les infos.

  5. #5
    Débutant
    Inscrit en
    Mars 2006
    Messages
    492
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 492
    Points : 94
    Points
    94
    Par défaut
    Merci beaucoup pour votre réponse, cependant comment crée les deux fichier XML à partir des fichier text, sachant que chaque fichier text contient 18000lignes, sachant que ce fichier txt je peux l'ouvrir avec du excel il positionne les colonnes bien, merci énormément.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Points : 299
    Points
    299
    Par défaut
    ben la il faut que tu réfléchisses un peu et trouver un petit algo qui va te permettre de faire une boucle sur toutes tes lignes.
    Genre :
    je récupère une ligne entière dans un tableau, puis je prends chaque élément de mon tableau et je crée l'entrée dans mon fichier XML et ce jusqu'à ne plus avoir de ligne.
    J'espere que cela t'aide et bon courage

  7. #7
    Débutant
    Inscrit en
    Mars 2006
    Messages
    492
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 492
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par skunkies Voir le message
    ben la il faut que tu réfléchisses un peu et trouver un petit algo qui va te permettre de faire une boucle sur toutes tes lignes.
    Genre :
    je récupère une ligne entière dans un tableau, puis je prends chaque élément de mon tableau et je crée l'entrée dans mon fichier XML et ce jusqu'à ne plus avoir de ligne.
    J'espere que cela t'aide et bon courage

    Merci beaucoup pour ta réponse, donc a priori il faut créer le fichier XML, je sais que les fichier XML sont des arborescendre un jenre de menu et sous menu, mais j'arrive pas à comprendre le sens de la déclaration XElement et XAtribute, merci beaucoup.

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Points : 299
    Points
    299
    Par défaut
    je ne veux pas être désagréable, mais si tu avais lancé la fonction que je t'ai donné et téléchargé le doc que je t'ai dit tu ne me poserai pas la question.
    un lien precis qui réponds a ta question

  9. #9
    Débutant
    Inscrit en
    Mars 2006
    Messages
    492
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 492
    Points : 94
    Points
    94
    Par défaut
    j'ai fais comme suite :

    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
     
     
    while ((s = sr.ReadLine()) != null)
                            {
                                String[] tbStr = s.Split(new Char[] { ';' });
     
     
                                XDocument doc = new XDocument(
                    new XDeclaration("1.0", "utf-8", "yes"),
                    new XComment("Liste des clients"),
                    new XElement("clients", new XElement("client", new XAttribute("ID", tbStr[0]),
                        new XElement("société", tbStr[1]), 
                        new XElement("site", tbStr[2]))));
     
                            }
                            doc.Save(@"C:\Documents and Settings\Administrateur\Bureau\output\test.xml");
                        }

    j'ai cette erreur : Error 1 The name 'doc' does not exist in the current context C:\Documents and Settings\Administrateur\Mes documents\Visual Studio 2008\Projects\test\ConsoleApplication1\Program.cs 62 25 ConsoleApplication1
    parcequ'il faut sortir le save pour qu'il met ajour le fichier XML, merci énormement.

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Points : 299
    Points
    299
    Par défaut
    tu devrais sortir les 3 permieres lignes de ton while
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    XDocument doc = new XDocument(
                    new XDeclaration("1.0", "utf-8", "yes"),
                    new XComment("Liste des clients"),
    Ces lignes permettent de créer un document, je suppose que tu ne veux pas créer un document par ligne.
    Ton erreur veut dire que 'doc' est inconnu car il est declaré dans ton bloc while et que tu fais le save en dehors du bloc while.

  11. #11
    Débutant
    Inscrit en
    Mars 2006
    Messages
    492
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 492
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par skunkies Voir le message
    tu devrais sortir les 3 permieres lignes de ton while
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    XDocument doc = new XDocument(
                    new XDeclaration("1.0", "utf-8", "yes"),
                    new XComment("Liste des clients"),
    Ces lignes permettent de créer un document, je suppose que tu ne veux pas créer un document par ligne.
    Ton erreur veut dire que 'doc' est inconnu car il est declaré dans ton bloc while et que tu fais le save en dehors du bloc while.
    J'ai fais comme suit :

    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
     
     XDocument doc = new XDocument(
                    new XDeclaration("1.0", "utf-8", "yes"),
                    new XComment("Liste des clients"));
    while ((s = sr.ReadLine()) != null)
                            {
                                String[] tbStr = s.Split(new Char[] { ';' });
     
     
     
                    new XElement("clients", new XElement("client", new XAttribute("ID", tbStr[0]),
                        new XElement("société", tbStr[1]), 
                        new XElement("site", tbStr[2])));
     
                            }
                            doc.Save(@"C:\Documents and Settings\Administrateur\Bureau\output\test.xml");
                        }
    une exception s'affiche : Token EndDocument in state Document would result in an invalid XML document. merci infiniment

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Points : 299
    Points
    299
    Par défaut
    essaye de trouver ou est ce que ca plante en mode debug...
    Sur quelle ligne?

  13. #13
    Débutant
    Inscrit en
    Mars 2006
    Messages
    492
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 492
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par skunkies Voir le message
    essaye de trouver ou est ce que ca plante en mode debug...
    Sur quelle ligne?
    Sa plante dans la ligne : doc.Save(@"C:\Documents and Settings\Administrateur\Bureau\output\test.xml");
    Merci beaucoup.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Points : 369
    Points
    369
    Par défaut
    Erreur de parenthèse?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    new XElement("clients", new XElement("client", new XAttribute("ID", tbStr[0])),
                        new XElement("société", tbStr[1]), 
                        new XElement("site", tbStr[2]));

  15. #15
    Débutant
    Inscrit en
    Mars 2006
    Messages
    492
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 492
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par NejNej Voir le message
    Erreur de parenthèse?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    new XElement("clients", new XElement("client", new XAttribute("ID", tbStr[0])),
                        new XElement("société", tbStr[1]), 
                        new XElement("site", tbStr[2]));
    si, y'a eu cette erreur syntaxique, mais je l'est corrigé l'exception reste tjrs, merci.

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Points : 369
    Points
    369
    Par défaut
    En Xml il me semble qu'il faut une balise qui englobe le tout alors qu'ici tout n'en a pas!

    tu sembles créer un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="utf-8"?>
    <clients>
       <client ID="lId">uneValeur<\client>
        <société>uneValeur<\société>
        <site>uneValeur<\site>
    </clients>
    <clients>
       <client ID="lId">uneValeur<\client>
        <société>uneValeur<\société>
        <site>uneValeur<\site>
    </clients>
    etc......
    il faudrait

    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <laBaliseQuiEnglobe>
       <clients>
           <client ID="lId">uneValeur<\client>
           <société>uneValeur<\société>
           <site>uneValeur<\site>
       </clients>
       <clients>
          <client ID="lId">uneValeur<\client>
           <société>uneValeur<\société>
           <site>uneValeur<\site>
       </clients>
       etc......
    <\laBaliseQuiEnglobe>

  17. #17
    Débutant
    Inscrit en
    Mars 2006
    Messages
    492
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 492
    Points : 94
    Points
    94
    Par défaut
    oui, actuelement elle marche comme la 2ème solution, merci

Discussions similaires

  1. Traitement d'une chaine de caractères
    Par thipyt dans le forum Général Python
    Réponses: 4
    Dernier message: 11/08/2008, 10h16
  2. Réponses: 3
    Dernier message: 27/04/2008, 19h10
  3. [CR 10] Traitement sur les chaines de caractères
    Par sylviefrfr dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 11/09/2006, 09h16
  4. [FLASH 8] traitement d'une chaine de caractère
    Par KaiN_974 dans le forum Flash
    Réponses: 17
    Dernier message: 12/06/2006, 11h42
  5. traitement d'une chaine de caractère
    Par mohamed dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/12/2004, 17h45

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