Récuperer une partie d'un mot

cs_zitoun Messages postés 14 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 20 août 2009 - 6 avril 2006 à 12:22
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 - 6 avril 2006 à 15:04
Bonjour,


Je souhaiterai savoir comment récuperer une partie d'un mot et le mettre par ex dans une listbox, par ex :


mottrucmot : si truc est présent, mettre mottrucmot dans la list box


A savoir qu'il y a une serie de mot dans une liste


cad :


ggrtruczez


frgdsgsdh


dfdgtrucere

J'espère quej 'ai été clair et merci d'avance

14 réponses

micmerle Messages postés 32 Date d'inscription mercredi 24 mars 2004 Statut Membre Dernière intervention 3 août 2006
6 avril 2006 à 12:55
Salut,
Si c'est en VBA, tu peux essayer Like.
Ex: If "ggrtruczez" Like "*truc*" Then...
Michael
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
6 avril 2006 à 13:07
Bonjour

Ou tu peux voir avec InStr(..)

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0
Tuning Max Messages postés 314 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 31 août 2006 1
6 avril 2006 à 13:15
Je te conseillerais pour ma part plutot l'utilisation des fonctions

Dim var, MyString As String, SearchW As String


MyString = "mottrucmot"
SearchW = "truc"
var = Mid(MyString, InStr(Len(SearchW), MyString, SearchW, 1), Len(SearchW))
0
Lucyberad Messages postés 414 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 26 juillet 2007 3
6 avril 2006 à 13:19
sinon il y as rien de mieux que les regex (expression reguliere) pour ca. et de loin, c'est un outil totalement fais pour !
si ca t'interresse, j'essairai de trouver un lien pour ca (et si tu connait pas bien sur, mais tu connait pas sinon tu l'aurait utilisé ^^)
par contre attention: c'est vraiment pas simple a debuter dedans !

<hr size="2" width="100%">
L U C Y I3 E R @ D
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
6 avril 2006 à 13:27
Bonjour

Si c'est du .NET (parce que la on ne sait pas) il est possible de rechercher avec IndexOf(...)

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
6 avril 2006 à 13:31
Salut,



Voici un exemple de code pour faire çà (en VB6) :

Private Sub AjouterLeMot(sMot As String, sMotPresent As String,lst As ListBox)



If Instr(1,sMot,sMotPresent) > 0 Then

lst.Additem sMot

End If



End Sub






Et ensuite, tu l'appelles comme ceci :



AjouterLeMot "dhsgftrucdsf" , "truc" , List1




Manu
0
cs_zitoun Messages postés 14 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 20 août 2009
6 avril 2006 à 13:38
Hum ça marche pas, peut etre parce j'ai pas évoqué les deux listbox :

En fait le mot à chercher est dans une listbox et la liste où il y a tous les mots sont aussi dans une listbox :

truc fdsdftruc
bla dsfsdfsdf
tgdgsgtruc
sqdsbla

Quelque chose dans ce genre la, donc ça fait qu'il faut prendre la première ligne de la 1ere listbox aussi.
Si on trouve le mot dans un mot dans la 2e listbox, par ex fdsdftruc se trouvera dans une troisieme liste, et ainsi de suite.
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
6 avril 2006 à 13:45
Et bien, tu utilises ma procédure comme ceci :



AjouterLeMot List1.List(j), List2.List(k), List3



En faisant varier j et k pour obtenir chaque élément de tes deux premières ListBoxes.

Manu
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
6 avril 2006 à 13:48
Si, dans ton schéma ci-dessus, List1 est à gauche et List2 à droite :







Dim j As Long

Dim k As Long



List3.Clear

For k = 0 To List2.ListCount - 1

For j = 0 To List1.ListCount - 1

AjouterLeMot List2.List(k) , List1.List(j) , List3

Next j

Next k

Manu
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
6 avril 2006 à 13:50
Salut,

Il semblerait que tu es pas mal de difficulté pour être clair dans ton explication... les fssqddsftruc et autres, c est pas très explicite... (je dis ça mais ça se trouve je ne vais pas être mieux)

En utilisant la fonction de 100635 econs et en l'applicant à ce que j'ai cru comprendre de ton problème .
ATTENTION Tu peux certainement faire mieux, mais c est juste un exemple
Soit List1 ta listbox contenant les mots à tester et List2 la liste qui contient LE (ou les d'ailleurs il faudrait preciser) et list3 le resultat.
Private Sub List2_Click()
Dim i as integer

For i = 0 to List1.ListCount
Call AjouterLeMot(List1.List(i), List2.List(List2.ListIndex), List3)
next

End Sub

Voila en espérant avoir pu te dépanner
@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
6 avril 2006 à 13:52
Re,

Pas assez rapide petit scarabée
tant pis j'espère au moins que j'ai pas trop taper à coté de la plaque.

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
cs_zitoun Messages postés 14 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 20 août 2009
6 avril 2006 à 14:10
Dsl si je n'ai pas été très "explicite" alors, j ai du mieux maintenant j ai un 0 qui s affiche ds la troisieme liste

Jai mis ce code dans un bouton aussi, alors peut etre que je peux pas j en sais rien.

Voila ce quej ai com code :
Private Sub Command7_Click()
Dim i As Long
Dim j As Long


For i = 0 To List1.ListCount - 1 '1ere liste ou il y a le mot a rechercher
List1.ListIndex = i
For j = 0 To List2.ListCount - 1 '2e liste ou il y a la liste des mots
List2.ListIndex = j

If InStr(1, j, i) > 0 Then
List3.AddItem j
End If
End Sub
0
cs_zitoun Messages postés 14 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 20 août 2009
6 avril 2006 à 14:45
Next j
Next i

j lavais mis ds le code
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
6 avril 2006 à 15:04
If InStr(1, j, i) > 0 Then

List3.AddItem j

End If



Quand on traduit ceci, çà signifie :



Si, dans le nombre j, je trouve le nombre i, alors j'ajoute le nombre j à List3.

Ce n'est pas ce que tu souhaites faire.



ma procédure (déposée à 13h48) fait l'opération correctement.



Utilises :

List1.List(i)

List2.list(j)

pour récupérer les mots qui se trouvent aux indices i et j de List1 et List2.






Manu
0
Rejoignez-nous