GNT sans publicité, site mobile, fonctionnalitées exclusives...

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
Lire les 14 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ng
Le #15314251
Salut

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




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/
LE TROLL
Le #15314211
Salut Guy :o)

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$
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



Driss HANIB
Le #15314141
je me permets de compiler le correction de ng

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





"ng" news:
Salut



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


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/


Guy FALESSE
Le #15314131
Salut Nicolas,
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"
Salut

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




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/


Guy FALESSE
Le #15314121
Salut Le Troll,
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" %
Salut Guy :o)

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" OQ$
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







Publicité
Suivre les réponses
Poster une réponse
Anonyme