Pas moyen d'effacer un élément dans un fichier texte qui est la source d'un comboBox
Le
Guy FALESSE
Bonjour à tous,
Donc, j'ai un comboBox base sur le fichier texte c:\catégories.txt
J'ai un bouton qui contient le code ci-dessous, lorsque je mets le spoints
d'arrêt, tout semble fonctionner, mais rien ne se passe.
Lorsque je supprime un élément de la liste, il s'efface, en principe,
suivant le code, comme la liste est clear, le fait de ré-écrire tous les
éléments de cette liste dans le fichier texte devrait l'avoir supprimé
puisque on l'a suuprimé du combo et qu'on a fait combo1.clear.
Hé bien non, tout reste en l'état, alors que devrais-je faire?
Bien sûr, il suffit de d'employer Notepad et on supprime à la main :-)
Private Sub cmdSupprimer_Click()
Dim vValeurIndex
Dim info$
'
vValeurIndex = Combo1.ListIndex
'Si un élément est sélectionné, le supprimer et afficher le nombre
If vValeurIndex > -1 Then
Combo1.RemoveItem vValeurIndex
Combo1.Clear
Else
Beep
End If
Open "c:\Catégories.txt" For Input As #1
Do While Not EOF(1)
Input #1, info$
Combo1.AddItem info$
Loop
Close #1
End Sub
D'avance merci,
Guy FALESSE
Donc, j'ai un comboBox base sur le fichier texte c:\catégories.txt
J'ai un bouton qui contient le code ci-dessous, lorsque je mets le spoints
d'arrêt, tout semble fonctionner, mais rien ne se passe.
Lorsque je supprime un élément de la liste, il s'efface, en principe,
suivant le code, comme la liste est clear, le fait de ré-écrire tous les
éléments de cette liste dans le fichier texte devrait l'avoir supprimé
puisque on l'a suuprimé du combo et qu'on a fait combo1.clear.
Hé bien non, tout reste en l'état, alors que devrais-je faire?
Bien sûr, il suffit de d'employer Notepad et on supprime à la main :-)
Private Sub cmdSupprimer_Click()
Dim vValeurIndex
Dim info$
'
vValeurIndex = Combo1.ListIndex
'Si un élément est sélectionné, le supprimer et afficher le nombre
If vValeurIndex > -1 Then
Combo1.RemoveItem vValeurIndex
Combo1.Clear
Else
Beep
End If
Open "c:\Catégories.txt" For Input As #1
Do While Not EOF(1)
Input #1, info$
Combo1.AddItem info$
Loop
Close #1
End Sub
D'avance merci,
Guy FALESSE

Poser une question


Il n'y a aucun code de réecriture dans le fichier ici... Ca va pas se faire
tout seul. Combo1.Clear permet, comme son nom l'indique, d'effacer le
contenu de la combo. C'est tout.
Il faut ecrire un code qui boucle la combo et qui réecrit dans un fichier
texte :
dim k as integer, i as interger
k=freefile
Open "c:....txt" for output as #k
For i = 0 to Combo1.ListCount
Print #k, Combo1.List(i)
Next
Close #k
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
If combo1.listindex > -1 Then: Combo1.Clear
dim p1 as long
Open "c:Catégories.txt" For Input As p1
Do While Not EOF(p1)
Input #p1, info$
Combo1.AddItem info$
Loop
Close p1
---> LA, je ne sais pas trop ce que tu veux faire, en tout
cas, ce que tu as fait est étrange???
-1- Tu supprimes sur test un élément de list, puis tu
effaces la liste??? (comme sus-cité)...
-2- Puis tu recharges la liste avec un fichier...
-3- Si tu veux juste vider ta liste:
combo1.clear
-4- Au lieu de ça:
If combo1.listindex > -1 Then: Combo1.Clear
Ne voulais tu pas plutôt faire ça:
If combo1.listcount Soit si liste vide, mais si elle est vide, ce n'est pas la
peine de la vider...
Le ListIndex < 0, c'est une liste vide, ou un click au
mauvais endroit parfois...
QUESTIONS:
- Est-ce une liste vide que tu veux recharger avec le
fichier?
- Ou, enlever sur test, simplement un élément de la liste,
conserver le reste de la liste, et le compléter par ce qu'il
y a dans le fichier???
--------------------
"Guy FALESSE" message de news: OQ$
"ng" news:
Private Sub cmdSupprimer_Click()
Dim vValeurIndex
Dim info$
Dim i as integer, k as integer
vValeurIndex = Combo1.ListIndex
'Si un élément est sélectionné, le supprimer et afficher le nombre
If vValeurIndex > -1 Then
Combo1.RemoveItem vValeurIndex
' Combo1.Clear ' ne sert à rien
' ici met comme l'a écrit ng la réécriture du fichier pour mettre à jour
ta suppression
k=freefile
Open "c:....txt" for output as #k
For i = 0 to Combo1.ListCount
Print #k, Combo1.List(i)
Next
Close #k
Else
Beep
End If
End Sub
faire
Merci de ta réponse.
Comme ça, plus de problème, toute la liste est effacée et dans le combo et
dans le fichier texte.
Ce que j'aurais souhaité était seulement d'effacer l'item sélectionné.
@+
Guy FALESSE
"ng"
Ben, comme tu vois, j'ai tout mélangé, c'est comme ça, quant on veut
apprendre en copiant.
Ce que j'aurais voulu faire, c'est d'enlever un élément, par exemple,
j'avais : essai, testUn, testDeux etc.
Je voulais effacer essai et du combo et du fichier texte (Catégories.txt)
Voilà, voilà, ce n'est pas plus difficile que ça...à écrire parce qu'en code
oufti :-)
Merci encore.
@+
Guy FALESSE
"LE TROLL" %