fazazi
Messages postés10Date d'inscriptionjeudi 30 juillet 2009StatutMembreDernière intervention26 août 2009
-
21 août 2009 à 15:12
fazazi
Messages postés10Date d'inscriptionjeudi 30 juillet 2009StatutMembreDernière intervention26 août 2009
-
21 août 2009 à 23:05
Bjour,
Je cherche une fonction qui parcours un texte et lorsque un pattern est detecté( pour mon cas une succesion de point d interrogation) copie les 16 caracteres suivants .J utilise en ce moment
InStr(chaine,motif) puis les fonctions Left et Right pour decouper le passage qui m interesse , le souci que j ai ,c est que mon fichier texte est contenu dans des cases de tableau ,est lorsque un pattern est rencontre j obtiens bien la chaine de caractere qui suit , mais il passe a la case suivante du tableau et je loupe les autres patterns contenu dans cette case de tableau.
ricomiracle
Messages postés195Date d'inscriptionvendredi 19 novembre 2004StatutMembreDernière intervention30 novembre 2009 21 août 2009 à 17:28
Bonjour,
Tu dois reformuler la question. On ne comprend pas si ton texte est contenu dans un fichier texte ou dans des cellules Excel. Post ton code de manière à ce que l'ont apporte une réponse précise
fazazi
Messages postés10Date d'inscriptionjeudi 30 juillet 2009StatutMembreDernière intervention26 août 2009 21 août 2009 à 20:45
Oui excusez moi j ai pose deux problemes en meme temps , on oubli les cases du tableau , en fait le fichier de depart est un fichier texte .txt ,j ai trouve une fonction qui me le charge dans un buffer donc en resumé j'ai Buffer = mon fichier texte, comment a partir de la le parcourir et detecter chaque pattern et recuperer un certain nombre de caractere qui suit ce pattern.
jmf0
Messages postés1566Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention 5 avril 20138 21 août 2009 à 21:40
Bonjour,
il te faut alors :
"éclater" (fonction split) ton buffer avec vbcrlf ===>> tu obtiendras un Array composé de toutes les lignes que contient ton buffer)
pour chaque item de cet Array (utilise une booucle For... to... next):
- utiliser Instr pour vérifier (sur chaque ligne ainsi exposée) l'existence éventuelle de la chaîne recherchée (tu peux également utiliser et en relever la position
- "avancer" d'un caractère (fonction Mid) tant que tu trouves un "?" et relever la position du dernier "?" trouvé, puis prendre (toujours la fonction Mid) les 16 caractères suivant cette dernière position
*Voilà ! A toi de jouer, maintenant (tu as tout le mécanisme. Il te reste à écrire le code correspondant en regardant ces fonction dans l'aide en ligne)
Vous n’avez pas trouvé la réponse que vous recherchez ?
jmf0
Messages postés1566Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention 5 avril 20138 21 août 2009 à 21:42
Excuse ...
Correction :
- utiliser Instr pour vérifier (sur chaque ligne ainsi exposée) l'existence éventuelle de la chaîne recherchée (tu peux également utiliser et en relever la position
ricomiracle
Messages postés195Date d'inscriptionvendredi 19 novembre 2004StatutMembreDernière intervention30 novembre 2009 21 août 2009 à 21:50
Pour parcourir le fichier il te faut ajouter la référence Microsoft scripting runtime à ton projet
ensuite:
Dim fso As New Scripting.FileSystemObject
Dim fs As Scripting.FileSystemObject
Dim fsostream As Scripting.TextStream
Dim sline As String
Dim stext As Variant
Set fsostream = fso.OpenTextFile("c:\test.txt")
While Not fsostream.AtEndOfStream
sline = fsostream.ReadLine
stext = Split(sline, "/")
Wend
'split créer un tableau contenant ton mot découpé par un délimiteur (ici "/")