Extraire une ligne d'un fichier txt [Résolu]

Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Dernière intervention
22 novembre 2007
- - Dernière réponse : malhivertman1
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Dernière intervention
22 novembre 2007
- 19 janv. 2006 à 16:36
Bonjour

En fait, j'extrait mon fichier txt dans une variable appellé texte.
Je recherche le mot "LYON" et une fois que je l'ai trouvé, je voudrait que dans un variable, ne se mette que la ligne dans laquelle est "LYON", est-ce possible?

++
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Dernière intervention
22 novembre 2007
3
Merci
Je regarde vos messages que maintenant et finalement j'avais trouvé.
J'ai fais une fonction, on rentre le mot a rechercher et elle nous ressort la ligne entiere ou est le mot, donc exactement ce que je voulais mais merci qd même les gars

Private Function chercheLigne(mot As String) As String
'rechercher la ligne dans laquelle est contenu le "mot"
Dim texte As String

Open App.Path + "\text.txt" For Input As 1#
Dim arret As Boolean
arret = False
While Not (EOF(1) Or arret)
Input #1, texte
If InStr(texte, mot) <> 0 Then
arret = True
End If
Wend
Close #1
chercheLigne = texte
End Function
++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Messages postés
201
Date d'inscription
mardi 7 octobre 2003
Dernière intervention
10 mai 2016
0
Merci
pour ça il faut compter les lignes en plus de les lire

ou bien balancer un truc du genre :

if instr(1;input(#1,maligne);"LYON") >1 then 'ben ta deja la ligne dans maligne, donc ...
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Dernière intervention
22 novembre 2007
0
Merci
A vrai dire ca marche pas des masses ce que tu m'as donné. Le Input dans le inStr , il aime pas trop

++
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Dernière intervention
9 juin 2006
21
0
Merci
Dim buffer as string, FN as long
Dim idxMot as long, Mot as string
dim i as long, j as long

Mot = "LYON" ' Mot à rechercher
FN = Freefile ' 1er N° de fichier dispo
Open "c:\fic.txt" For input as #FN ' Ouverture du fichier en lecture
buffer = vbCRLF & input(Lof(FN), #FN) & vbCRLF ' Lecture du fichier
Close #FN ' Fermeture du fichier
idxmot = instr(buffer,mot) ' Recherche du mot
if idxmot <>0 then ' Si le mot est bien dans le fichier
i = instrrev(buffer,vbLF,idxmot)+2 ' Recherche le saut de ligne qui précède le mot
j = instr(idxmot,buffer,vbCR) ' Recherche le retour chariot qui suit le mot
MsgBox(Mid$(buffer,i+1,j-i) ' Extrait la ligne entre ces deux index
Else
MsgBox Mot & " n'est aps dans le fichier"
end if

Cela devrait fonctionner normalement (pas de VB sous la main pour tester)

CR
Messages postés
201
Date d'inscription
mardi 7 octobre 2003
Dernière intervention
10 mai 2016
0
Merci
yep, j'ai essayé ce qu'il n'aime pas c'est le format du numéro de fichier dans le input (1,maligne) (à l'erreur de tout à l'heure prés
:-(((
Open "c:\essai.txt" For Input As #1
While Not EOF(erferf)
Input 1, maligne
If InStr(1, Input(erferf, maligne), "r") > 1 Then MsgBox (maligne)

donc (et j'ai vérifié c'kou si !!) :
Open "c:\essai.txt" For Input As #1
While Not EOF(1)
Input #1, maligne
If InStr(1, maligne, "toto") > 0 Then MsgBox (maligne)
Wend
Close #1

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.