J'ai une chaine de caractère "chaine de test" et je voudrais la convertir en
tableau pour que
tab [0] = chaine
tab [1] = de
tab [2] = test
je voudrais utiliser ça pour faire une recherche multi mot.
exemple :
j'ai plussieur chaine :
chaine 1 = "ceci contient un test"
chaine 2 = "Celle là est juste une chaine"
chaine 3 = "vous ne trouverez rien ici"
si je cherche ma chaine de départ "chaine de test" dans les chaines
ci-dessus je voudrais comme résultat:
Ok pour chaiine 1
Ok pour chaine 2
Nok pour chaine 3
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacques93
Bonjour Jacques, Jacques a écrit :
Bonjour,
J'ai une chaine de caractère "chaine de test" et je voudrais la convertir en tableau pour que tab [0] = chaine tab [1] = de tab [2] = test
je voudrais utiliser ça pour faire une recherche multi mot. exemple : j'ai plussieur chaine : chaine 1 = "ceci contient un test" chaine 2 = "Celle là est juste une chaine" chaine 3 = "vous ne trouverez rien ici"
si je cherche ma chaine de départ "chaine de test" dans les chaines ci-dessus je voudrais comme résultat: Ok pour chaiine 1 Ok pour chaine 2 Nok pour chaine 3
Merci d'avance.
Jacques
Essaie avec Split :
Dim tb() As String Dim i As Integer
tb = Split("Chaine de test", " ") For i = 0 To UBound(tb) Debug.Print tb(i) Next i
-- Cordialement,
Jacques.
Bonjour Jacques,
Jacques a écrit :
Bonjour,
J'ai une chaine de caractère "chaine de test" et je voudrais la convertir en
tableau pour que
tab [0] = chaine
tab [1] = de
tab [2] = test
je voudrais utiliser ça pour faire une recherche multi mot.
exemple :
j'ai plussieur chaine :
chaine 1 = "ceci contient un test"
chaine 2 = "Celle là est juste une chaine"
chaine 3 = "vous ne trouverez rien ici"
si je cherche ma chaine de départ "chaine de test" dans les chaines
ci-dessus je voudrais comme résultat:
Ok pour chaiine 1
Ok pour chaine 2
Nok pour chaine 3
Merci d'avance.
Jacques
Essaie avec Split :
Dim tb() As String
Dim i As Integer
tb = Split("Chaine de test", " ")
For i = 0 To UBound(tb)
Debug.Print tb(i)
Next i
J'ai une chaine de caractère "chaine de test" et je voudrais la convertir en tableau pour que tab [0] = chaine tab [1] = de tab [2] = test
je voudrais utiliser ça pour faire une recherche multi mot. exemple : j'ai plussieur chaine : chaine 1 = "ceci contient un test" chaine 2 = "Celle là est juste une chaine" chaine 3 = "vous ne trouverez rien ici"
si je cherche ma chaine de départ "chaine de test" dans les chaines ci-dessus je voudrais comme résultat: Ok pour chaiine 1 Ok pour chaine 2 Nok pour chaine 3
Merci d'avance.
Jacques
Essaie avec Split :
Dim tb() As String Dim i As Integer
tb = Split("Chaine de test", " ") For i = 0 To UBound(tb) Debug.Print tb(i) Next i
-- Cordialement,
Jacques.
Jean-Marc
"Jacques" a écrit dans le message de news:4321bda1$0$27445$
Bonjour,
J'ai une chaine de caractère "chaine de test" et je voudrais la convertir
en
tableau pour que tab [0] = chaine tab [1] = de tab [2] = test
je voudrais utiliser ça pour faire une recherche multi mot. exemple : j'ai plussieur chaine : chaine 1 = "ceci contient un test" chaine 2 = "Celle là est juste une chaine" chaine 3 = "vous ne trouverez rien ici"
si je cherche ma chaine de départ "chaine de test" dans les chaines ci-dessus je voudrais comme résultat: Ok pour chaiine 1 Ok pour chaine 2 Nok pour chaine 3
Hello,
voici ta fonction:
Public Function ChercherMultiMots(pattern As String, chaine As String) As Boolean Dim t() As String Dim i As Long
If pattern = "" Or chaine = "" Then Exit Function End If t() = Split(pattern, " ") For i = LBound(t()) To UBound(t()) If InStr(chaine, t(i)) Then ChercherMultiMots = True Exit For End If Next i End Function
Voici un exemple d'appel:
Private Sub Command1_Click() Dim chaine1 As String Dim chaine2 As String Dim chaine3 As String Dim pattern As String Dim ret As Boolean
chaine1 = "ceci contient un test" chaine2 = "Celle là est juste une chaine" chaine3 = "vous ne trouverez rien ici"
pattern = "chaine de test"
ret = ChercherMultiMots(pattern, chaine1) Debug.Print "resultat pour chaine: " & chaine1 & " => " & ret
ret = ChercherMultiMots(pattern, chaine2) Debug.Print "resultat pour chaine: " & chaine2 & " => " & ret
ret = ChercherMultiMots(pattern, chaine3) Debug.Print "resultat pour chaine: " & chaine3 & " => " & ret
End Sub
Et voici les résultats:
resultat pour chaine: ceci contient un test => True resultat pour chaine: Celle là est juste une chaine => True resultat pour chaine: vous ne trouverez rien ici => False
Tout roule :-)
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"Jacques" <jj@free.fr> a écrit dans le message de
news:4321bda1$0$27445$8fcfb975@news.wanadoo.fr...
Bonjour,
J'ai une chaine de caractère "chaine de test" et je voudrais la convertir
en
tableau pour que
tab [0] = chaine
tab [1] = de
tab [2] = test
je voudrais utiliser ça pour faire une recherche multi mot.
exemple :
j'ai plussieur chaine :
chaine 1 = "ceci contient un test"
chaine 2 = "Celle là est juste une chaine"
chaine 3 = "vous ne trouverez rien ici"
si je cherche ma chaine de départ "chaine de test" dans les chaines
ci-dessus je voudrais comme résultat:
Ok pour chaiine 1
Ok pour chaine 2
Nok pour chaine 3
Hello,
voici ta fonction:
Public Function ChercherMultiMots(pattern As String, chaine As String) As
Boolean
Dim t() As String
Dim i As Long
If pattern = "" Or chaine = "" Then
Exit Function
End If
t() = Split(pattern, " ")
For i = LBound(t()) To UBound(t())
If InStr(chaine, t(i)) Then
ChercherMultiMots = True
Exit For
End If
Next i
End Function
Voici un exemple d'appel:
Private Sub Command1_Click()
Dim chaine1 As String
Dim chaine2 As String
Dim chaine3 As String
Dim pattern As String
Dim ret As Boolean
chaine1 = "ceci contient un test"
chaine2 = "Celle là est juste une chaine"
chaine3 = "vous ne trouverez rien ici"
pattern = "chaine de test"
ret = ChercherMultiMots(pattern, chaine1)
Debug.Print "resultat pour chaine: " & chaine1 & " => " & ret
ret = ChercherMultiMots(pattern, chaine2)
Debug.Print "resultat pour chaine: " & chaine2 & " => " & ret
ret = ChercherMultiMots(pattern, chaine3)
Debug.Print "resultat pour chaine: " & chaine3 & " => " & ret
End Sub
Et voici les résultats:
resultat pour chaine: ceci contient un test => True
resultat pour chaine: Celle là est juste une chaine => True
resultat pour chaine: vous ne trouverez rien ici => False
Tout roule :-)
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
"Jacques" a écrit dans le message de news:4321bda1$0$27445$
Bonjour,
J'ai une chaine de caractère "chaine de test" et je voudrais la convertir
en
tableau pour que tab [0] = chaine tab [1] = de tab [2] = test
je voudrais utiliser ça pour faire une recherche multi mot. exemple : j'ai plussieur chaine : chaine 1 = "ceci contient un test" chaine 2 = "Celle là est juste une chaine" chaine 3 = "vous ne trouverez rien ici"
si je cherche ma chaine de départ "chaine de test" dans les chaines ci-dessus je voudrais comme résultat: Ok pour chaiine 1 Ok pour chaine 2 Nok pour chaine 3
Hello,
voici ta fonction:
Public Function ChercherMultiMots(pattern As String, chaine As String) As Boolean Dim t() As String Dim i As Long
If pattern = "" Or chaine = "" Then Exit Function End If t() = Split(pattern, " ") For i = LBound(t()) To UBound(t()) If InStr(chaine, t(i)) Then ChercherMultiMots = True Exit For End If Next i End Function
Voici un exemple d'appel:
Private Sub Command1_Click() Dim chaine1 As String Dim chaine2 As String Dim chaine3 As String Dim pattern As String Dim ret As Boolean
chaine1 = "ceci contient un test" chaine2 = "Celle là est juste une chaine" chaine3 = "vous ne trouverez rien ici"
pattern = "chaine de test"
ret = ChercherMultiMots(pattern, chaine1) Debug.Print "resultat pour chaine: " & chaine1 & " => " & ret
ret = ChercherMultiMots(pattern, chaine2) Debug.Print "resultat pour chaine: " & chaine2 & " => " & ret
ret = ChercherMultiMots(pattern, chaine3) Debug.Print "resultat pour chaine: " & chaine3 & " => " & ret
End Sub
Et voici les résultats:
resultat pour chaine: ceci contient un test => True resultat pour chaine: Celle là est juste une chaine => True resultat pour chaine: vous ne trouverez rien ici => False
Tout roule :-)
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Patrice Henrio
> Public Function ChercherMultiMots(pattern As String, chaine As String) As Boolean Dim t() As String Dim i As Long
If pattern = "" Or chaine = "" Then Exit Function End If t() = Split(pattern, " ") For i = LBound(t()) To UBound(t()) If InStr(chaine, t(i)) Then ChercherMultiMots = True Exit For End If Next i End Function
La solution de Jean-marc est comme d'habitude excellente à un détail près : l'utilisation abusive de la valeur par défaut des booléens en VB donc je propose
Public Function ChercherMultiMots(pattern As String, chaine As String) As Boolean Dim t() As String Dim i As Long Dim Résultat as Boolean
If pattern = "" Or chaine = "" Then Résultatúlse else t() = Split(pattern, " ") For i = LBound(t()) To UBound(t()) Résultat=(InStr(chaine, t(i)) >0) If Résultat Then exit for Next i End If ChercherMultiMots=résultat End Function
Ceal n'enlève rien à la solution de Jean-Marc et est juste une remarque de puriste;
> Public Function ChercherMultiMots(pattern As String, chaine As String) As
Boolean
Dim t() As String
Dim i As Long
If pattern = "" Or chaine = "" Then
Exit Function
End If
t() = Split(pattern, " ")
For i = LBound(t()) To UBound(t())
If InStr(chaine, t(i)) Then
ChercherMultiMots = True
Exit For
End If
Next i
End Function
La solution de Jean-marc est comme d'habitude excellente à un détail près :
l'utilisation abusive de la valeur par défaut des booléens en VB
donc je propose
Public Function ChercherMultiMots(pattern As String, chaine As String) As
Boolean
Dim t() As String
Dim i As Long
Dim Résultat as Boolean
If pattern = "" Or chaine = "" Then
Résultatúlse
else
t() = Split(pattern, " ")
For i = LBound(t()) To UBound(t())
Résultat=(InStr(chaine, t(i)) >0)
If Résultat Then exit for
Next i
End If
ChercherMultiMots=résultat
End Function
Ceal n'enlève rien à la solution de Jean-Marc et est juste une remarque de
puriste;
> Public Function ChercherMultiMots(pattern As String, chaine As String) As Boolean Dim t() As String Dim i As Long
If pattern = "" Or chaine = "" Then Exit Function End If t() = Split(pattern, " ") For i = LBound(t()) To UBound(t()) If InStr(chaine, t(i)) Then ChercherMultiMots = True Exit For End If Next i End Function
La solution de Jean-marc est comme d'habitude excellente à un détail près : l'utilisation abusive de la valeur par défaut des booléens en VB donc je propose
Public Function ChercherMultiMots(pattern As String, chaine As String) As Boolean Dim t() As String Dim i As Long Dim Résultat as Boolean
If pattern = "" Or chaine = "" Then Résultatúlse else t() = Split(pattern, " ") For i = LBound(t()) To UBound(t()) Résultat=(InStr(chaine, t(i)) >0) If Résultat Then exit for Next i End If ChercherMultiMots=résultat End Function
Ceal n'enlève rien à la solution de Jean-Marc et est juste une remarque de puriste;
Jean-Marc
"Patrice Henrio" a écrit dans le message de news:%
> If InStr(chaine, t(i)) Then
La solution de Jean-marc est comme d'habitude excellente à un détail près
:
l'utilisation abusive de la valeur par défaut des booléens en VB donc je propose
Résultat=(InStr(chaine, t(i)) >0)
Ceal n'enlève rien à la solution de Jean-Marc et est juste une remarque de puriste;
Hello,
Je m'en suis aperçu hier soir en me relisant, et je n'ai pas rectifié :-)
Donc, Patrice a parfaitement raison, il faut toujours utiliser un boolean ou une expression booléene dans un test et ne jamais utiliser abusivement la valeur d'un entier pour un test.
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"Patrice Henrio" <patrice.henrio@laposte.net> a écrit dans le message de
news:%23F14MaftFHA.3596@TK2MSFTNGP15.phx.gbl...
> If InStr(chaine, t(i)) Then
La solution de Jean-marc est comme d'habitude excellente à un détail près
:
l'utilisation abusive de la valeur par défaut des booléens en VB
donc je propose
Résultat=(InStr(chaine, t(i)) >0)
Ceal n'enlève rien à la solution de Jean-Marc et est juste une remarque de
puriste;
Hello,
Je m'en suis aperçu hier soir en me relisant, et je n'ai pas rectifié :-)
Donc, Patrice a parfaitement raison, il faut toujours utiliser
un boolean ou une expression booléene dans un test et ne jamais
utiliser abusivement la valeur d'un entier pour un test.
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
"Patrice Henrio" a écrit dans le message de news:%
> If InStr(chaine, t(i)) Then
La solution de Jean-marc est comme d'habitude excellente à un détail près
:
l'utilisation abusive de la valeur par défaut des booléens en VB donc je propose
Résultat=(InStr(chaine, t(i)) >0)
Ceal n'enlève rien à la solution de Jean-Marc et est juste une remarque de puriste;
Hello,
Je m'en suis aperçu hier soir en me relisant, et je n'ai pas rectifié :-)
Donc, Patrice a parfaitement raison, il faut toujours utiliser un boolean ou une expression booléene dans un test et ne jamais utiliser abusivement la valeur d'un entier pour un test.
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;