|
Equivalent du LIKE VB ? |
|
fred
|
Bonjour, Je suis entrain de traduire du VB vers Windev (jusqu'à la tout va bien) mais je bloque sur l'équivalent du LIKE VB6. If (CCase Like "*45*35*55*") Then
...
Else
...
End If
Je vois bien des possibilités avec ChaîneOccurrence mais c'est nettement moins drôle et lisible :) Merci
Contribution le : 08/02/2006 10:43
|
|
|
Re: Equivalent du LIKE VB ? |
|
Developpeur WDF
Inscrit: 24/01/2006 13:42
De Chartres
Post(s): 142
|
Regarde dans l'aide [= c'est le remplacant du like (commence par).
Contribution le : 08/02/2006 10:58
|
|
|
Re: Equivalent du LIKE VB ? |
|
Anonyme
|
Merci de ta réponse
J'ai regardé l'aide mais aucune opérateur ne propose d'utiliser des joker (* ou %)...
Fred
Contribution le : 08/02/2006 11:29
|
|
|
Re: Equivalent du LIKE VB ? |
|
Anonyme
|
Bon bah j'ai codé une fonction approchante :p // Syntaxe :
//[ <Résultat> = ] Like (<ChaineSource>, <donnee1>[, <donnee2>[, <donnee3>[, <donnee4>[, <donnee5>]]]])
//
// Paramètres :
// ChaineSource : <chaine>
// donnee1 : <chaine a rechercher>
// donnee2 : <chaine a rechercher>
// donnee3 : <chaine a rechercher>
// donnee4 : <chaine a rechercher>
// donnee5 : <chaine a rechercher>
// Valeur de retour :
// booléen : // Aucune
FONCTION Like(ChaineSource, donnee1, donnee2="",donnee3="",donnee4="",donnee5="")
resultat est un booléen
d2,d3,d4,d5 sont des booléens
SI donnee2="" ALORS d2=True SINON d2=False
SI donnee3="" ALORS d3=True SINON d3=False
SI donnee4="" ALORS d4=True SINON d4=False
SI donnee5="" ALORS d5=True SINON d5=False
resultat=0
SI ChaîneOccurrence(ChaineSource,donnee1)>0 ET (ChaîneOccurrence(ChaineSource,donnee2)>0 OU d2=True) ET (ChaîneOccurrence(ChaineSource,donnee3)>0 OU d3=True) ET (ChaîneOccurrence(ChaineSource,donnee4)>0 OU d4=True) ET (ChaîneOccurrence(ChaineSource,donnee5)>0 OU d5=True) ALORS
resultat=1
FIN
RENVOYER resultat
Contribution le : 08/02/2006 11:45
|
|
|
Re: Equivalent du LIKE VB ? |
|
Animateur WDF
Inscrit: 17/05/2004 14:21
Post(s): 382
|
Bonjour, quelque chose du genre PROCEDURE Like(P_Chaine,P_Comparateur)
// Déclaration
i est un entier
W_B_Retour est un booléen = Vrai
POUR i = 1 A Taille(P_Comparateur)
SI P_Comparateur[[i]] <> "*" ALORS
SI P_Comparateur[[i]] <> P_Chaine[[i]] ALORS
W_B_Retour = Faux
FIN
FIN
FIN
RENVOYER W_B_Retour
SI Like(CCase,"*45*35*55*") alors ...
Contribution le : 08/02/2006 11:58
|
_________________
Mbsl
|
|
Re: Equivalent du LIKE VB ? |
|
Developpeur WDF
Inscrit: 24/01/2006 13:42
De Chartres
Post(s): 142
|
If (CCase Like "*45*35*55*")
if CCase [= ?45 or CCase [= ?35 alors ...
a tester bon dev
Contribution le : 08/02/2006 12:47
|
|
|
Re: Equivalent du LIKE VB ? |
|
Fred
|
Aucun de ces joker ne marche. rhaaaa Windev tu me déçois.... Fred
Contribution le : 08/02/2006 13:08
|
|
|
Re: Equivalent du LIKE VB ? |
|
Fred
|
Bien vu Celtic, cette classe correspond totalement à mes attentes et est compactible avec ma version 9 de WinDev. Je comprends pas grand chose au fonctionnement de la fonction IsMatch() et nottament aux appels réccursifs de la fonction dans la fonction mais ca marche ! Fred
Contribution le : 09/02/2006 15:00
|
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.