cs_Jack
Messages postés
14006
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
79
6 juin 2005 à 17:49
Salut
Comme tu n'as pas eu le courage de recopier ton code, le voici :
Ca commence fort : Si en plus tu nous disais à quelle ligne survient l'erreur (qui semble pourtant très claire), ça aiderait ...
Private Sub Form_Load()
ajouter.Enabled = False
envoyer.Enabled = False
supprimer.Enabled = False
Fichier = App.Path & "contacts.txt"
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(Fichier) = False Then
Exit Sub
End If
Open Fichier For Input As #1
Do While Not EOF(1)
Line Input #1, ligne1
contact.AddItem ligne1, x
Line Input #1, ligne2
contact.List(x, 1) = ligne2
x = x + 1
Loop
Close #1
End Sub
-1- Tu fais une boucle Do-While pour dire "Si je lis la dernière ligne du fichier, je n'aurais pas d'erreur. Or, dans ta boucle, tu fais 2 "Line Input" --> Si ton fichier a un nombre de lignes impaires, tu auras une erreur.
-2- Quand tu tapes "contact.AddItem " , l'IDE (l'éditeur VB) te propose les variables à utiliser :
Tu lis donc item As String, [Index]
Comme expliqué dans l'aide de VB6, les infos entre crochets droits [ et ] sont facultatifs.
Dans ton cas, tu incrémentes ton X mais je ne penses pas que tu en aies réellement besoin.
-3- Ensuite, et c'est là qu'est l'erreur, sur la ligne "contact.List(x, 1)" avec le même procédé, VB te présente les paramètres Integer
Dans ton cas, tu lui donnes 'x' et '1' : Comme cela ne correspond pas à la bonne syntaxe, l'éditeur se dit qu'il s'agit d'un tableau à deux dimension qu'il ne connait pas --> Variable non définie
En fait, une ListBox ne supporte qu'un seul Item par ligne.
Cet item, du texte dans ton cas, peut-être indexé, mais ce n'est pas une obligation.
Le problème, c'est que si tu indexes, il faut aboslument que cet index soit unique, sinon, il y aura erreur
Alors, qu'y a t-il dans ton fichier ?
Il semble que les données aillent par couple et que tu veuilles les afficher suir la même ligne du ListBox
C'est plutôt un ListView que tu devrais utiliser.
Ne vient pas demander comment utiliser une ListView, tout est expliqué dans l'aide de VB6 ou bien il suffit d'ouvrir une seule source qui utilise une ListView pour comprendre comment ça marche (c'est un peu plus complexe que la ListBox)
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)