Extraire une ligne d'un fichier txt

Résolu
malhivertman1
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007
- 19 janv. 2006 à 14:24
malhivertman1
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
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?

++

5 réponses

malhivertman1
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007
1
19 janv. 2006 à 16:36
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
++
3
cs_etniqs
Messages postés
201
Date d'inscription
mardi 7 octobre 2003
Statut
Membre
Dernière intervention
10 mai 2016

19 janv. 2006 à 14:30
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 ...
0
malhivertman1
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007
1
19 janv. 2006 à 14:42
A vrai dire ca marche pas des masses ce que tu m'as donné. Le Input dans le inStr , il aime pas trop

++
0
crenaud76
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
28
19 janv. 2006 à 15:09
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_etniqs
Messages postés
201
Date d'inscription
mardi 7 octobre 2003
Statut
Membre
Dernière intervention
10 mai 2016

19 janv. 2006 à 16:01
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
0