Deblocccccage......vite

soleildz Messages postés 58 Date d'inscription dimanche 19 avril 2009 Statut Membre Dernière intervention 10 février 2016 - 4 août 2003 à 11:34
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 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

1 réponse

cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
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
0
Rejoignez-nous