soleildz
Messages postés58Date d'inscriptiondimanche 19 avril 2009StatutMembreDernière intervention10 février 2016
-
4 août 2003 à 11:34
cs_rene38
Messages postés1858Date d'inscriptionsamedi 29 juin 2002StatutMembreDernière intervention17 octobre 2013
-
4 août 2003 à 13:28
Votre messagerie CodeS-SourceS
- Retour à la liste des messages
- Retour à votre boîte de réception
- Retour à votre boîte d'envoi
- Répondre
- Supprimer
- Imprimer
Message : Re : salut ...aide vb6
Message de : soleildz Déposé le : 04/08/2003 11:19:56
Sujet : Re : salut ...aide vb6
Message :
--------------------------------------------------------------------------------
salut;
j'ai ajouté une boucle car j'ai plusieurs FindIn
mais ça ne marche pas bien.
findin= 1/2/3/4/5 ou findin=1/2/4/3/5
je cherche tous les sous ensembles ordonnés de la forme a/d/c/d sauf.....les findWhats
si findWaths=1/4/3/5 alors exactement 119 resultats sauf
1/4/3/5 (eliminé si present dans un findin)
les findWhats et les FindIns sont generés par une autre
fonction.
"voila ce que j'ai faits "et 1/4/3/5 echappe!!!
stp...je debute en vb6
Public Function SsEnsemble(FindWhat As String, FindIn As String, Optional Separator As String = "/") As Boolean
Dim tab_FindWhat() As String
Dim tab_FindIn() As String
tab_FindWhat = Split(FindWhat, Separator)
tab_FindIn = Split(FindIn, Separator)
Dim l as integer
'l est le nombre de FindIn
Dim Cursor As Byte
Dim i As Byte
for j=0 to l-1
For i = 0 To UBound(tab_FindIn)
If tab_FindIn(i) = tab_FindWhat(Cursor) Then
Cursor = Cursor + 1
End If
Next i
next j
SsEnsemble = (Cursor < UBound(tab_FindWhat))
End Function
Private Sub Form_Load()
MsgBox SsEnsemble("5/10/18/2/3", "1/5/11/10/18/2/6/3")
End Sub
cs_rene38
Messages postés1858Date d'inscriptionsamedi 29 juin 2002StatutMembreDernière intervention17 octobre 201311 4 août 2003 à 13:28
Bonjour
Ceci répond il à ton attente ?
Private Sub Supprime_Click() 'Bouton de commande Name = Supprime
'Pour éliminer les lignes qui contiennent 1435 dans cet ordre
'dans la ListBox ListD
Dim aEliminer As String 'supprimer les lignes qui contiennent cette chaîne
aEliminer = "1/4/3/5" 'qui peut être passée en paramètre à un(e) Sub ou Function
Dim Elim() As String 'décomposition de cette chaîne
Elim = Split(aEliminer, "/")
Dim Ligne As String 'ligne de la ListBox
Dim i As Long 'compteur de lignes
For i = ListD.ListCount - 1 To 0 Step -1
'on part de la fin de la liste pour éviter les erreurs
'sinon après effacement de la ligne n° N, la suivante porte le n° N
'et la boucle passe à N+1 en sautant donc cette ligne
Ligne = ListD.List(i) 'la ligne lue
'si les différents caractères de "1/4/3/5"
'apparaissent dans cet ordre dans la ligne
If InStr(Ligne, Elim(0)) < InStr(Ligne, Elim(1)) _
And InStr(Ligne, Elim(1)) < InStr(Ligne, Elim(2)) _
And InStr(Ligne, Elim(2)) < InStr(Ligne, Elim(3)) Then
'on supprime la ligne
ListD.RemoveItem (i)
End If
Next i
End Sub