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
Rejoignez-nous