Lire un fichier texte mot à mot

cs_akaii Messages postés 109 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 14 février 2014 - 5 sept. 2006 à 16:43
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 5 sept. 2006 à 22:15
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

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 sept. 2006 à 17:09
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
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
5 sept. 2006 à 17:09
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
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
5 sept. 2006 à 20:41
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 ?......
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
5 sept. 2006 à 22:15
 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
0
Rejoignez-nous