Vous recherchez une table de données pour des correspondances non exactes?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Je travaille sur un script dans lequel la variable "Plate" est définie comme un texte du type "8SVPCCV1G0BB2". Je dois utiliser cette variable pour sélectionner une ligne dans une table différente où "Plate" peut être un caractère générique tel que:
8S
8SV
8SQPCC
*
Dans ce cas, je voudrais qu'il sélectionne la ligne 8SV. Mais si ma variable était "8PSVTTY2G0AB3", je voudrais qu'elle corresponde à la ligne * qui est une ligne générique.
Je cherchais à utiliser l'expression rationnelle ou la correspondance de motifs pour cela, mais je suis nouvelle pour les deux, donc je n'ai pas encore de chance. Suis-je sur la bonne voie en regardant ceux-là? Ou y a-t-il une meilleure façon de faire cette correspondance? Merci!
Re: Recherche dans la table de données pour des correspondances non exactes?Je suis sûr que t Il existe plusieurs façons d’aborder ceci. Une solution consiste à essayer d'abord de sélectionner les lignes correspondant au modèle. Si aucune ligne n'est sélectionnée, sélectionnez la ligne "*".
// exemple de table
ma table = Ouvrir ( "$ SAMPLE_DATA / Big Class.jmp" ) ;
: prénom [ 1 ] = "*" ;
// Fonction permettant de sélectionner la ou les lignes correspondantes ou la ligne par défaut "*"
select_plate = Une fonction ({ dt , p } ,
dt << sélectionner où ( Pat Match ( : prénom , assiette )) ;
Si ( N Row ( dt << obtient les lignes sélectionnées ) == 0 ,
dt << sélectionner où ( : prénom == "*" )
) ;
) ;
// Teste la fonction
assiette = "ACL" ;
select_plate ( ma table , assiette ) ;
Attendre ( 2 ) ;
assiette = "QQQ" ;
select_plate ( ma table , assiette ) ;
Re: Recherche dans la table de données pour des correspondances non exactes?J'ai réussi à faire en sorte que cela fonctionne s'il existe une ligne correspondante:
targetconfig << New Column ("PlateMatch", Formula (Pat Match (plaque,: PlateStart)));
Le seul problème avec ceci est si la plaque correspond uniquement à la ligne *.