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 :

fichier et saut de ligne


Sujet :

C#

Vue hybride

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 19
    Par défaut fichier et saut de ligne
    Bonjour,
    j'ai un fichier texte dont je dois extraire differentes phrases, cela fonctionne pour la plusprt ou je fait un split:
    présentation :

    Docnid: 19395574
    Date de création: 14/10/2008
    Type: ambassade/transmission d'infos
    Motivation:
    double

    je recupere 19395574, ambassade/transmissions d'infos
    mais j'arrive pas a recuperer 'double'
    car un split ( : ) apres motivation est blanc, il me faut lire la ligne apres.
    quelqu'un peut 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
     
    private void btTri_Click(object sender, EventArgs e)
            {
                string ph1 = "Docnid:";
                string ph2 = "Type";
                string ph3 = "Motivati";
                string[] valeurs;               //tableau des données a stocker en BD
                string ligne;                   //ligne courante du fichier
                string temp = "";               //variable temporaire qui stocke les données
                StreamReader st = new StreamReader("c:\\temp\\mail.txt", System.Text.Encoding.Default); //stream du fichier
     
                while ((ligne = st.ReadLine()) != null)
                {
                    if (System.Text.RegularExpressions.Regex.IsMatch(ligne, ph1, System.Text.RegularExpressions.RegexOptions.IgnoreCase))
                    {
                        valeurs = ligne.Split(':');
                        temp = valeurs[1];
                    }
                    else if (System.Text.RegularExpressions.Regex.IsMatch(ligne, ph2, System.Text.RegularExpressions.RegexOptions.IgnoreCase))
                    {
                        valeurs = ligne.Split(':');
                        temp = temp + " ; " + valeurs[1];
                    }
                    else if(System.Text.RegularExpressions.Regex.IsMatch(ligne, ph3, System.Text.RegularExpressions.RegexOptions.IgnoreCase))
                    {
                       // ligne.Trim();
                        //ligne.Split(Environment.NewLine.ToCharArray());
                        temp = temp + ";" + ligne.ToString();
                        MessageBox.Show(temp);  
                    }
     
                }
            }

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    si il doit toujours y avoir le ":" alors il faut vérifier sa présence

    Après, la ligne double ne contenant pas de ":", il te suffit de faire un test
    pour savoir si le ":" est bien présent dans la ligne. Et si ce n'était pas le cas, peut-etre (je ne connais pas ton contexte, donc, c'est juste une hypothèse) tu peux estimer que la ligne ne contient qu'un mot

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Par défaut
    Salut,

    et juste ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    else if(System.Text.RegularExpressions.Regex.IsMatch(ligne, ph3, System.Text.RegularExpressions.RegexOptions.IgnoreCase))
    {
        temp = temp + ";" + st.ReadLine();
        MessageBox.Show(temp);  
    }
    ça n'irait pas??

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 19
    Par défaut
    merci melleb ,
    ca marche sauf qu'il me continue plus a lire mon fichier apres.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Par défaut
    Dans le code, tel que tu nous l'as mis,
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ((ligne = st.ReadLine()) != null)
    il doit aller jusque la fin de ton fichier

    tout dépend de ce que tu mets dans ton while,
    ici, avec l'exemple de fichier que tu nous as mis et tes 3 if, tout a été traité...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 19
    Par défaut
    oui,, tout est mis,

    fichier txt=

    Demande de suppression du document suivant:
    Base de données: DBPROD
    Docnid: 19395577
    Date de création: 14/10/2008
    Type: ambassade/transmission d'infos
    Motivation:
    double

    Demande de suppression du document suivant:
    Base de données: DBPROD
    Docnid: 12188990
    Date de création: 30/05/2006
    Type: Dublin/rappel
    Motivation:
    Double pièce
    //fin de fichier


    ici dans mon code il ne prend que la premiere demande deux fois en plus, et n e lit pas la suite du fichier je vois pas pourquoi?
    merci

  7. #7
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Par défaut
    Salut,

    Si jamais il est possible que le texte contenant la valeur se trouve sur plusieurs lignes, tu devrais envisager d'utiliser une boucle qui parcours et concatène chaque ligne tant qu'elle ne matches pas.

Discussions similaires

  1. Recherche des pattern dans un fichier sans saut de ligne
    Par erox44 dans le forum Shell et commandes POSIX
    Réponses: 5
    Dernier message: 28/01/2013, 21h58
  2. [WD15] Création Fichier XML + saut de ligne
    Par GEOFDEN dans le forum WinDev
    Réponses: 1
    Dernier message: 21/10/2010, 12h56
  3. [MySQL] Import d'un fichier sans saut de ligne
    Par Pgs dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 09/05/2008, 14h07
  4. Réponses: 12
    Dernier message: 02/01/2008, 13h16
  5. [Tomcat Bean IO] Ecriture sur Fichier et Saut de Ligne
    Par zaoueche dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 25/01/2006, 15h02

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