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 nombres occurences d'un mot dans un fichier Word Vb.net


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Apprenti développeur
    Inscrit en
    Novembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Apprenti développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2014
    Messages : 10
    Points : 22
    Points
    22
    Par défaut Compter nombres occurences d'un mot dans un fichier Word Vb.net
    Bonjour ,

    Je me dirige vers vous après des recherches sur internet qui n'ont rien donner.

    Comme dit dans le titre , j'aimerai compter le nombre d'occurence d'un mot dans un fichier word en Vb.net

    Actuellement voici mon code :

    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
     
    Imports Word = Microsoft.Office.Interop.Word
    Imports System.Windows
    Imports System.Windows.Forms
     
    Dim nomfichier as string = "X:\G022596\My Documents\ConteRendu.doc"
     
    Private Sub Button_RechercheOcc ( ByVal sender as System.Object , ByVal e As System.EventArgs) Handles Button1.Click
           Dim objWordApp As New Word.Application
           Dim objWordApp.Visible = False
           Dim count as iNTEGER
     
          Dim objDoc as Word.Document = objWordApp.Documents.Open(nomfichier)
          objDoc = objWordApp.ActiveDocument
     
          With objDoc.Content.Find
                  .ClearFormatting()
                  .Text = "la"
                  .Forward = True
                  .Wrap = Word.WdFindWrap.wdFindContinue
                  .Execute
                  If .Found = True Then count = count + 1
          End With
     
         MsgBox("Occurence trouvée : " & count)
         objDoc.Close()
         objDoc = Nothing
         objWordApp.Quit()
         objWordApp = Nothing
     
    End Sub
    En effet , il me trouve que 1 fois et s'arrête de suite aprés alors que j'ai plusieurs mots "la" dans le fichier.
    Pourtant j'ai mit la condition Forward = True qui devrait parcourir tout mon fichier , non ?

    Désolé si ma question semble un peu débile mais je séche là ...

    Merci en tout cas

  2. #2
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Pour trouver plusieurs fois le mot recherché, il te faut une boucle.

    Le forward = true ne sert qu'à dire que ta recherches s'effectue en allant vers la fin du document.

    Sinon, juste comme exercice de réflexion, si la taille du document le permet, on peut se débrouiller pour arriver à créer une liste dont les éléments sont les mots du document et ensuite, une simple requête linq nous donnera le nombre d'occurence de n'importe quel mot sans avoir besoin de reparcourir tout le document à chaque fois.
    Kropernic

  3. #3
    Membre à l'essai
    Homme Profil pro
    Apprenti développeur
    Inscrit en
    Novembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Apprenti développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2014
    Messages : 10
    Points : 22
    Points
    22
    Par défaut
    Je suis d'accord pour la boucle mais une boucle sur quoi ?

    Sur un reader qui continuer à parcourir le doc tant qu'on est pas arrivé à la fin ?

  4. #4
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Il faudrait regarder dans la doc de Content.Find mais j'imagine qu'il doit t'indiquer quand il a atteint la fin du document. Du coup, c'est là dessus que je bouclerais perso.
    Kropernic

  5. #5
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Voilà comment procéder en se basant sur cet exemple :

    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
     
            'Une variable de l'occurrence recherchée
            Dim occ = "la"
            'Une variable pour indiquer le nombre de fois dont l'occurrence apparaît dans le document
            Dim occFounded%
     
            Dim word As New Application()
            Dim doc As New Document()
     
            Dim fileName As Object = "C:\Users\jm\Desktop\t.docx"
            ' Define an object to pass to the API for missing parameters
            Dim missing As Object = System.Type.Missing
            doc = word.Documents.Open(fileName, missing, missing, missing, missing, missing, _
                missing, missing, missing, missing, missing, missing, _
                missing, missing, missing, missing)
     
            Dim read As String = String.Empty
            For i As Integer = 0 To doc.Paragraphs.Count - 1
                Dim temp As String = doc.Paragraphs(i + 1).Range.Text.Trim()
                If temp <> String.Empty Then
                    'C'est ici qu'on récupère la ligne courante (temp) !
                    If temp.Contains(occ) Then
                        ' On incrémente la variable occurFounded à chaque fois que la ligne contient l'occurence !
                        occFounded += 1
                    End If
     
                End If
            Next
     
            MsgBox("TROUVEES : " & occFounded.ToString)
     
            DirectCast(doc, _Document).Close()
            DirectCast(word, _Application).Quit()

  6. #6
    Membre à l'essai
    Homme Profil pro
    Apprenti développeur
    Inscrit en
    Novembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Apprenti développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2014
    Messages : 10
    Points : 22
    Points
    22
    Par défaut
    Ouah Merci ! Ca marche du tonnerre de zeus :-)

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

Discussions similaires

  1. VB6: occurence d'un mot dans un fichier Word
    Par pascalix dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 08/03/2012, 19h30
  2. compter l'occurence d'un mot dans un fichier pdf en arabe
    Par lamis2009 dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 30/11/2010, 21h40
  3. Compter les occurences d'un mot dans une chaîne
    Par mimi2311 dans le forum Pascal
    Réponses: 4
    Dernier message: 20/04/2008, 22h37
  4. [PHP4] Nombre d'occurences d'un mot dans un fichier
    Par trihanhcie dans le forum Langage
    Réponses: 15
    Dernier message: 06/07/2006, 11h42
  5. Réponses: 8
    Dernier message: 18/01/2005, 10h58

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