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 :

[Visual C# 2010] Rechercher un mot dans un fichier


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 86
    Par défaut [Visual C# 2010] Rechercher un mot dans un fichier
    Bonjour a tous,

    Comme indique dans mon titre je souhaite rechercher un mot dans un fichier .txt
    Vous allez me dire que c'est du vu et revu mais mon probleme est une petite variante ...
    En fait, je ne connais pas le mot en question. Je dois chercher dans ce fichier un code (tag) present sous la forme d'une suite de caracteres comme ceci : B8519394 c'est a dire une lettre suivie de 7 chiffres ...

    Existe-t-il un moyen de faire cela ? La position du tag dans le fichier peut varier d'un fichier a l'autre ...

    Merci d'avance,

    Mathieu

  2. #2
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    En utilisant les expressions régulières c'est très facile.

    Google pourra t'aiguiller assez facilement je pense.
    Si tu as besoin d'aide n'hésite pas à revenir vers nous !

  3. #3
    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

    dans l'assembly VisualBasic, tu as la fonction FindInFile qui permet de chercher la présence d'une chaine de caractère

    Dans la mesure ou tu as un fichier Txt à scanner, je pense que l'utilisation de cette fonction devrait résoudre ton problème

    Sinon, coder une telle fonction, c'est quelques lignes de code uniquement !!!

  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

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 86
    Par défaut
    Effectivement je pense que ca va resoudre mon probleme

    J'ai pourtant cherche longtemps mais je ne suis tombe qu'une seule fois sur l'expression "Regex" et je n'ai pas regarder ce que c'etait exactement !

    Je vais me pencher la dessus et je vous tiens au courant.

    Merci beaucoup

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 86
    Par défaut
    Il est vrai que les Regex sont bien pratiques ^^

    Cependant j'ei une autre question.

    Dans mon fichier le tag est sur une ligne comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TAG         "B8519394<number>B8519394</number>"
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TAG         "<number>B8519394</number>"
    ou encore

    Bref souvent le tag est "colle" a des balises du coup je me demandais s'il etait possible avec les Regex de demander de rechercher mon tag dans ce qui m'a l'air d'etre une String ? Et que du coup il me renvoie seulement mon tag ?

    Edit : J'ai fait ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    StreamReader strr = new StreamReader(@"M:\QYC40A00\gill_vob\5_sw_design\appli\acm\model\" + tBFind.Text.ToString());
    String line;
    Regex reg = new Regex(@"^.{1,}[A-Z][0-9]{7}.{1,}$");
     
    while ((line = strr.ReadLine()) != null)
    {
         if(reg.IsMatch(line))
         {
              MessageBox.Show("find");
          }
    }
    Il me trouve bien la ligne et une seule ligne donc OK mais voila comment recuperer seulement mon tag ?

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 86
    Par défaut
    Hey hey ca y est j'ai reussi a recuperer mon tag !

    Voila comment j'ai procede :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    private void bFind_Click(object sender, EventArgs e)
            {
                StreamReader strr = new StreamReader(@"M:\QYC40A00\gill_vob\5_sw_design\appli\acm\model\" + tBFind.Text.ToString());
                String line;
     
                while ((line = strr.ReadLine()) != null)
                {
                    Match mat = Regex.Match(line, @"(.{1,})([A-Z])([0-9]{7})(.{1,})");
                    if (mat.Success)
                    {
                        MessageBox.Show(mat.Groups[2].Value + mat.Groups[3].Value); // Juste un affichage pour controler la recuperation
                    }
                }
            }
    Merci a tous ceux qui ont repondu !

    Mathieu

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

Discussions similaires

  1. Rechercher un mot dans un fichier texte
    Par elscorpio dans le forum VB.NET
    Réponses: 3
    Dernier message: 02/06/2014, 17h04
  2. [Batch] rechercher un mot dans un fichier
    Par apetroff dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 11/12/2009, 15h18
  3. [batch] Comment rechercher deux mots dans un fichier .txt ?
    Par koKoTis dans le forum FAQs Windows
    Réponses: 0
    Dernier message: 10/02/2009, 17h54
  4. Recherche de mot dans un fichier
    Par Bennybear dans le forum C++
    Réponses: 6
    Dernier message: 23/03/2007, 20h12
  5. Module de recherche de mots dans plusieurs fichiers
    Par hat_et_m dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 24/09/2006, 20h09

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