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

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

malhivertman1 489 Messages postés mardi 16 novembre 2004Date d'inscription 22 novembre 2007 Dernière intervention - 19 janv. 2006 à 16:36
+3
Utile
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
++
Cette réponse vous a-t-elle aidé ?  
cs_etniqs 201 Messages postés mardi 7 octobre 2003Date d'inscription 10 mai 2016 Dernière intervention - 19 janv. 2006 à 14:30
0
Utile
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 ...
malhivertman1 489 Messages postés mardi 16 novembre 2004Date d'inscription 22 novembre 2007 Dernière intervention - 19 janv. 2006 à 14:42
0
Utile
A vrai dire ca marche pas des masses ce que tu m'as donné. Le Input dans le inStr , il aime pas trop

++
crenaud76 4172 Messages postés mercredi 30 juillet 2003Date d'inscription 9 juin 2006 Dernière intervention - 19 janv. 2006 à 15:09
0
Utile
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
cs_etniqs 201 Messages postés mardi 7 octobre 2003Date d'inscription 10 mai 2016 Dernière intervention - 19 janv. 2006 à 16:01
0
Utile
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.