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

VB.NET Discussion :

compter nombre mot avec contains avec plusieur fichier texte dans un dossier


Sujet :

VB.NET

  1. #1
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 323
    Par défaut compter nombre mot avec contains avec plusieur fichier texte dans un dossier
    Bonjour,

    mon problème c'est calculer le nombre mot dans un dossier avec contains dans chaque fichier. Dans mon dossier, j'ai 3 fichier : test,test 2,test3. il m'afficher 4 fois le mème résulta pour chaque fichier test x4 test2 x 4 test3 x4.
    dans chaque fichier je doit calculer le nombre la lettre a qui ce trouve dans le fichier.

    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim ListPath As New List(Of Résult)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim files As String() = Directory.GetFiles(dossier, "*.*", SearchOption.AllDirectories)
                For Each fn As String In files
               Dim filename As String = fn
    For Each Data As String In File.ReadAllLines(filename)
                        If Data.Contains(Pattern) Then ListPath.Add(New Résult With {.Name = filename, .Value = Data.Contains(Pattern).ToString.Count})
                    Next
    next
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Class Résult
        Public Property Name As String
        Public Property Value As Integer
    End Class
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If ListPath.Any Then
                    Dim distinct1 As List(Of Résult) = ListPath.Distinct.ToList
                    For i = 0 To distinct1.Count - 1
                        RichTextBox1.AppendText(String.Format("Le texte : {0} ce trouver dans le dossier : {1} ({2} résultats) {3}", "a", distinct1(i).Name, distinct1(i).Value, Environment.NewLine))
                    Next
                Else
                    RichTextBox1.AppendText(String.Format("Oups, Aucun texte à était trouver : {0}", "a"))
                End If
    mon problème c'est comment calculer le nombre mot a dans chaque fichier dans le dossier? merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 323
    Par défaut
    bonjour,
    j'ai refait mon code mais j'ai toujours le mème résulta pour chaque fichier. normalement le fichier teste.txt = 2,teste2.text = 3,teste3.txt = 4 pour rechercher par la lettre a.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    RichTextBox1.Clear()
            Dim files1 As IEnumerable(Of Résult) = From data In Directory.EnumerateFiles(filePath, "*.*", SearchOption.AllDirectories) From line In File.ReadAllLines(data) Where (line.Contains(TextBox1.Text)) Distinct Select New Résult With {.Name = Path.GetFileName(data), .Pattern = line, .Value = (From x In data Where x = TextBox1.Text Select x).Count}
            If files1.Any Then
                For Each f As Résult In files1
                    RichTextBox1.AppendText(String.Format("Le fichier : {0} - Le mot à rechercher : {1} - Total de mot dans le fichier : {2} {3}", f.Name, f.Pattern, f.Value, Environment.NewLine))
                Next
            Else
                RichTextBox1.AppendText(String.Format("Oups, Aucun texte à était trouver : {0}", TextBox1.Text))
            End If
    Voici le résultat en image :
    Nom : Capture d’écran 2022-06-19 080944.png
Affichages : 163
Taille : 5,2 Ko

    pourquoi j'arrive pas à avoir le résulta pour chaque fichier en recherchent la lettre a? merci d'anavce

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    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 972
    Par défaut
    Pour moi tu es en train de compter le nombre de ligne qui contient un a et pas le nombre de a .

    Pour rechercher le nombre de 'a' dans une chaine (en tenant compte que 'a' est différent de 'A') :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String text = "Ceci est un texte contenant une phrase";
    Int32 number = text.Count(it => it.Equals('a') || it.Equals('A'));
     
    MessageBox.Show($"{number}");

  4. #4
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 323
    Par défaut
    Bonjour Popo,

    merci d'avoir répondu à mon problème. mon problème c'est recherche le mot dans chaque fichier et combien à t'il de mème mot dans chaque fichier.

    exemple : recherche la lettre a dans fichier teste.txt. il trouve 2 lettre a dans le fichier teste.txt....etc avec teste2.txt,teste3.txt.
    voici en image :
    Nom : Capture d’écran 2022-06-20 142509.png
Affichages : 146
Taille : 23,7 Ko

    mon codes sens Distinct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    If Directory.Exists(filePath) Then
                Dim files = From Fichier In Directory.EnumerateFiles(filePath, "*.*", SearchOption.AllDirectories) From lignes In File.ReadLines(Fichier) Where Not String.IsNullOrEmpty(lignes) Where lignes.Contains(TextBox1.Text) Select New With {.CFile = Path.GetFileName(Fichier), .CLine = TextBox1.Text}
                If files.Any Then
                    For Each f In files
                        RichTextBox1.AppendText(String.Format("Le fichier : {0} - Le mot à rechercher : {1} - Total de mot dans le fichier : {2} {3}", f.CFile, f.CLine, files.Count, Environment.NewLine))
                    Next
                Else
                    RichTextBox1.AppendText(String.Format("Oups, Aucun texte à était trouver : {0}", TextBox1.Text))
                End If
            End If
    le code avec Distinct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     If Directory.Exists(filePath) Then
                Dim files = From Fichier In Directory.EnumerateFiles(filePath, "*.*", SearchOption.AllDirectories) From lignes In File.ReadLines(Fichier) Where Not String.IsNullOrEmpty(lignes) Where lignes.Contains(TextBox1.Text) Distinct Select New With {.CFile = Path.GetFileName(Fichier), .CLine = TextBox1.Text}
                If files.Any Then
                    For Each f In files
                        RichTextBox1.AppendText(String.Format("Le fichier : {0} - Le mot à rechercher : {1} - Total de mot dans le fichier : {2} {3}", f.CFile, f.CLine, files.Count, Environment.NewLine))
                    Next
                Else
                    RichTextBox1.AppendText(String.Format("Oups, Aucun texte à était trouver : {0}", TextBox1.Text))
                End If
            End If
    Comment faire pour calculer par rapport à la recherche le nombre de lettre dans le fichier? merci d'avance

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    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 972
    Par défaut
    Tu es incohérent.
    Ce n'est pas la même chose de rechercher un mot et de rechercher une lettre.

    Un mot est contenu dans une phrase, il est donc séparé des autres mots par un espace ou une marque de ponctuation.
    Une lettre peut se trouver n'importe où.

    Ou alors tu recherche une suite de lettre n'importe où (ce qui est encore différent).
    Donc qu'est ce que tu veux faire ?

    Et au passage,
    Tu trouveras peu de personnes pour prendre le temps de recopier chaque caractères à partir d'une image.
    Merci de fournir les données en entrée sous forme de texte.

  6. #6
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 574
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 574
    Par défaut
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     Private Function ConpteMots(txt As String, C As String) As Integer
            Return (From b In txt.ToLower.Split() Where b = C.ToLower Select b).Count
        End Function
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
              Dim Text As String = My.Computer.FileSystem.ReadAllText("C:\Myrep\Test.txt")
     
            Dim Number As Integer = ConpteMots(Text, "contenant")
     
     
            MessageBox.Show($"{Number.ToString}")

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 10/05/2011, 09h21
  2. Affichage de plusieurs fichiers text dans une seule JtextArea
    Par kinza-22 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 06/06/2010, 12h39
  3. copier plusieurs fichiers texte dans un seul fichier texte
    Par ERICKO dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/08/2008, 20h21
  4. ouvrir plusieurs fichier texte dans une seule feuille
    Par popoye dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/04/2008, 15h28
  5. Ouvrir plusieurs fichier textes dans un dossier : *texte.txt
    Par Jenn74 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/05/2007, 16h52

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