Lire un fichier texte mot à mot

Signaler
Messages postés
109
Date d'inscription
mardi 10 janvier 2006
Statut
Membre
Dernière intervention
14 février 2014
-
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
-
Hello,
Je dois lire un fichier text et faire ressortir tous les mots pour les comparer avec deux autres mots et je n'ai pas trouvé de code équivalent, en général on dit comment lire une ligne mais pas un mot.

4 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Pour lire une ligne, rien de plus simple :

Dim sLigne as string
Open "ton fichier" for input as #1

While not EOF(1)
    Line Input #1, sLigne 'lit ligne par ligne
Wend

Close #1
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,


Une fois avoir lu la ligne, si tu fais un Split avec comme délimiter l'espace, tu devrais obtenir tout les mots de ta ligne


Dim Mots() as string


Mots = Split(LaLigne, " ")


Je ne sais pas si cela peu t aider






@+,   Ju£i?n
Messages postés
630
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
17 février 2007

Salut, il serait bon que tu nous dises la structure de ton fichier texte.
Comment est-il organisé ? Par ligne ? Par mot ? D'un seul bloc ? ..... ?
Quel est le séparateur entre les mots/enregistrements ?......
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Bonsoir,

Exemple, en vbs, dans lequel je recherche l'occurence "ligne" dans un fichier .txt:
Mon séparateur de ligne est vbCrLf
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Recherche d'une chaine de caractère dans un fichier .txt
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
'Instruction Option Explicit: Force la déclaration explicite de toutes les variables dans un script
Option Explicit


Const sChaine = "ligne" 'chaine recherchée
Const fichier = "d:\test1.txt"


Dim Fso, j, ObjTextStream, strtmp, Texte, count
Set Fso = CreateObject("Scripting.FileSystemObject")
'Création et ouverture du fichier résultat (.txt)
Set ObjTextStream = Fso.OpenTextFile(fichier, 1, False)
Do While Not ObjTextStream.AtEndOfStream
   Texte = Split(ObjTextStream.ReadAll, vbCrLf)
   For j = LBound(Texte) To UBound(Texte)
       'MsgBox Texte(j)
       Call Recherche_ligne (Texte(j))
   Next
Loop
ObjTextStream.Close 
Set ObjTextStream = Nothing
Set Fso = Nothing
 
Function Recherche_ligne(Texte)
'Instruction Dim: Déclare des variables et alloue l'espace de stockage
Dim aPos() , iPos
'Instruction ReDim: Déclare les variables de tableau dynamique et attribue ou
'réattribue l'espace de stockage au niveau de la procédure
'Tableau où sont stockées les positions
ReDim aPos(0)
 
'Fonction InStr: Renvoie la position de la première occurrence d'une chaîne
'à l'intérieur d'une autre
iPos = InStr(1, Texte, sChaine)
 
'Instruction While...Wend: Exécute une série d'instructions tant qu'une condition donnée est True
    While iPos <> 0
'Fonction UBound: Renvoie le plus grand indice disponible pour la dimension indiquée d'un tableau
        ReDim Preserve aPos(UBound(aPos) + 1)
        aPos(UBound(aPos)) = iPos
        iPos = InStr(iPos + 1, Texte, sChaine)
    Wend
 
'Instruction If...Then...Else: Exécute un groupe d'instructions soumises à une condition,
'en fonction de la valeur d'une expression
    If UBound(aPos) > 0 Then
        Dim i , Resultat
        Resultat = "L'occurrence """ & sChaine & """ a été trouvée " & UBound(aPos) & " fois " &_
                   "dans l'expression " &vbCrLf&vbCrLf& """" & Texte & """" &vbCrLf& "sur la ligne " & j+1
 
'Instruction For...Next: Répète un groupe d'instructions un nombre spécifié de fois
'Fonction CStr: Renvoie une expression qui a été convertie en un Variant de sous-type String
'Fonction Len: Renvoie le nombre de caractères contenus dans une chaîne
        For i = 1 To UBound(aPos)
            Resultat = Resultat & vbCrLf & "Postion: " & CStr(aPos(i)) & "," & CStr(aPos(i)) + Len(sChaine)
        Next
        MsgBox Resultat
    Else
        'Resultat = "L'occurrence """ & sChaine & """ n'a pas été trouvée dans l'expression " &vbCrLf&vbCrLf&_
        '"""" & Texte & """"
    End If
End function

jean-marc