Lire lignes choisies

[Résolu]
Signaler
Messages postés
75
Date d'inscription
lundi 23 août 2004
Statut
Membre
Dernière intervention
26 mai 2008
-
Messages postés
34
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
23 juin 2006
-
salut et bonne journée tout le monde

on suppose qu'on a ouvert un fichier ce code permet de lire toutes les lignes
et le ajouter à une listbox


    Do While Not EOF(1)
        Line Input #1, maLigne
        Liste.AddItem maLigne
    Loop



ma question est :
comment lire les lignes qu'on veut ;
et pas obligatoirement successives ?
cordialement
kysid

11 réponses

Messages postés
34
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
23 juin 2006

salut
Je te propose de passer par un tableau de variables temporaire:

Dim tabLignes() As String
Dim numLigne As Integer
Dim Ligne As String



ReDim tabLignes(1)


Open "C:\votrefichier.txt" For Input As #1
    While Not EOF(1)
        Line Input #1, Ligne
        ' enregistrement des lignes dans un tableau de variable temporaire
        tabLignes(numLigne) = Ligne
        numLigne = numLigne + 1
        'redimensionnement du tableau
        ReDim Preserve tabLignes(numLigne + 1)
    Wend
Close #1
List1.AddItem (tabLignes(4)) 'par exemple la ligne 4

Qu'est ce que tu en pense?
Messages postés
34
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
23 juin 2006

salut
Je ne suis pas en vacance mais je n'ai pas internet chez moi

C'est étonnant que cela affiche autre chose qu'une erreur ?
Je m'explique, à aucun moment vous n'enregistrez la variable dans le tableau

Do While Not EOF(1)
    nbligne = nbligne + 1
    Line Input #1, strLigne
   tabLignes(numLigne) = strLigne
Loop

Dans l'exemple que je vous ai donné j'ai figé volontairement le choix, il suffit de remplacer le 4 dans List1.AddItem (tabLignes(4)) par une variable comme vous l'avez fait ci-dessus :

For numLigne = 0 To nbligne
   List1.AddItem (tabLignes(numLigne))
Next numLigne
Messages postés
34
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
23 juin 2006

tu peux remplacer les 2 lignes là...
Line Input #1, Ligne
tabLignes(numLigne) = Ligne
...par celle là...
Line Input #1, tabLignes(numLigne)

ça fait une variable de moin.
Messages postés
75
Date d'inscription
lundi 23 août 2004
Statut
Membre
Dernière intervention
26 mai 2008

Merci demon_renard 
votre aide est claire et concise 
je vais essayer ces codes ;
si pepin je vais me permettre de revenir à ce topic ;)

cordialement
Messages postés
75
Date d'inscription
lundi 23 août 2004
Statut
Membre
Dernière intervention
26 mai 2008

salut demon_renard
excuse le nombre de ligne je tiens à etre precis :)
Je sais pas pourquoi j ai afichage de la ligne n+1 quand je met
List1.AddItem (tabLignes(n))
j'ai essayer d'afficher une certaine ligne commençant par des caractéres defini [dans un textbox] mais...
je suis pas arrivé à afficher la ligne que je veux durant l'execution.
parceque le choix ::
List1.AddItem (tabLignes(4))
est figé une fois pour toute.
j ai essayer ça


    Do While Not EOF(1)
    nbligne = nbligne + 1
    Line Input #1, strLigne
Loop


 avec


For numLigne = 0 To nbligne
List1.AddItem (tabLignes(numLigne))
Next


pour avoir au moins ligne par lignes jusqu'à la fin
mais ça donne seulement la 1ére ligne


Moralité mes debut perdurent help please!
Messages postés
75
Date d'inscription
lundi 23 août 2004
Statut
Membre
Dernière intervention
26 mai 2008

:)
à moins que vous soyez dejà en vaccances.
je prefere pour vous :)
Messages postés
34
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
23 juin 2006

argh... une erreur

For numLigne = 0 To nbligne
   List1.AddItem (tabLignes(nbligne)) 'et non pas numLigne
Next numLigne
Messages postés
75
Date d'inscription
lundi 23 août 2004
Statut
Membre
Dernière intervention
26 mai 2008

salut demon_renard
moi non plus no connextio à la maison
Merci de la correction , Prof.
Je vais appliquer ce code.
Si tu permet , une
      comment aller directement à une ligne commençant par une string particuliére?[qu'on taperais dans texboxe par exemple  ; sorte de Recherche ça dans le fichier.txt ]

Bonne journée
 
Messages postés
34
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
23 juin 2006

salut kysid,

Si on m'avait dit qu'un jour je pourrais aider un prof, je l'aurais jamais crue  

Text1 est le nom de la textBox dans laquel on rentre la chaîne à rechercher.
Ce code est à mettre après avoir parcourue le fichier texte donc après la boucle du Not EOF :

For i = 0 To nbligne
  If Mid(tabLignes(i), 1, Len(Text1.Text)) = Text1.Text Then
    List1.AddItem (tabLignes(i))
  End If
Next i

len indique le nombre de caractère dans la textBox
mid("salut",1,2) renvoie les 2 caractères à partir du caractère 1 soit ici "sa"

Dis moi si cela convient ou si il te faut quelque chose de plus pointue au niveau de la recherche dans le fichier texte
Messages postés
75
Date d'inscription
lundi 23 août 2004
Statut
Membre
Dernière intervention
26 mai 2008

salutdemon_renard 
je viens de copier/coller dans mon usb.
si j ai bien compris
   si la ligne i commence par un bout de chaine correspondant à Text1.Text
   alors ajoute la ligne i à la list1
[]):)
je testerais à la maison
merci
He..! c toi le prof
et le debutant c moi
Bonne journée
Messages postés
34
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
23 juin 2006

c'est bien ça