cs_akaii
Messages postés109Date d'inscriptionmardi 10 janvier 2006StatutMembreDernière intervention14 février 2014
-
5 sept. 2006 à 16:43
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 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.
Dolphin Boy
Messages postés630Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention17 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 ?......
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 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
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