cs_kysid
Messages postés75Date d'inscriptionlundi 23 août 2004StatutMembreDernière intervention26 mai 2008
-
14 juin 2006 à 14:17
demon_renard
Messages postés34Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention23 juin 2006
-
23 juin 2006 à 13:30
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
demon_renard
Messages postés34Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention23 juin 2006 14 juin 2006 à 14:47
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
demon_renard
Messages postés34Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention23 juin 2006 19 juin 2006 à 08:53
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
cs_kysid
Messages postés75Date d'inscriptionlundi 23 août 2004StatutMembreDernière intervention26 mai 2008 17 juin 2006 à 14:02
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
cs_kysid
Messages postés75Date d'inscriptionlundi 23 août 2004StatutMembreDernière intervention26 mai 2008 19 juin 2006 à 17:39
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 ]
demon_renard
Messages postés34Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention23 juin 2006 20 juin 2006 à 09:13
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
cs_kysid
Messages postés75Date d'inscriptionlundi 23 août 2004StatutMembreDernière intervention26 mai 2008 21 juin 2006 à 18:22
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