LlSubStringIndex/fr
| LSL Portail Francophone | LSL Portail Anglophone | Fonctions | Évènements | Types | Operateurs | Constantes | Contrôle d'exécution | Bibliothèque | Tutoriels |
Description
Fonction: integer llSubStringIndex( string source, string motif );| 181 | N° de fonction |
| 0.0 | Delais |
| 10.0 | Energie |
Renvoie un integer correspondant à l’index du motif dans la source.
| • string | source | |||
| • string | motif |
Si le motif n’est pas trouvé dans la source, la fonction renvoie la valeur -1.
L’index du premier caractère du string est 0
Avertissements
- Réalise un contrôle littéral (sensible aux majuscules).
- Wildcards et RegEx ne fonctionnent pas.
- Tenter de rechercher un motif vide ("") renverra 0 au lieu de -1.
Exemples
Contrôle sur le nom:
default
{
state_entry()
{
llSensorRepeat("", NULL_KEY, AGENT, PI, 96.0, 20);
}
sensor(integer NumDet)
{
integer i;
//Contrôle l’existence du nom " Linden", avec un espace au début
//cette astuce permet de contrôler exhaustivement tous les noms.
//par ailleurs vous pourriez également contrôler le prénom avec "Prénom " (espace à la fin)
for(i = 0; i < NumDet; ++i)
if(~llSubStringIndex(llDetectedName(i), " Linden"))
llInstantMessage(llDetectedKey(i), "Vu !");
}
}
Codes utiles
Tests pour voir si un string contient une copie d’un autre string :
1. Concis & conventionnel:
integer Contient(string source, string motif) // http://wiki.secondlife.com/wiki/llSubStringIndex
{
return 0 <= llSubStringIndex(source, motif);
}
integer Débute_avec(string source, string motif) // http://wiki.secondlife.com/wiki/llSubStringIndex
{
return llGetSubString(source, 0, llStringLength(motif) - 1) == motif;
}
integer Termine_avec(string source, string motif) // http://wiki.secondlife.com/wiki/llSubStringIndex
{
return llGetSubString(source, -llStringLength(motif), -1) == motif;
}
Note: certaines des fonctions précédentes fonctionnent sans même utiliser llSubStringIndex.
2. Plus ingénieux et plus court (~54 bytes au lieu ~60):
integer Contient(string source, string motif) // http://wiki.secondlife.com/wiki/llSubStringIndex
{
return ~llSubStringIndex(source, motif);
}
Note: llSubStringIndex renvoie -1 uniquement lorsque le motif n’est pas trouvé, l’opérateur ~ renvoie zéro uniquement pour -1, ainsi ~llSubStringIndex renvoie zéro uniquement lorsque le motif n’a pas été trouvé.
Note: cette version n'est pas clairement plus rapide ou plus lente selon l’analyseur de performance et le testeur d’efficacité avec l’expression :
{ contient("wiki.secondlife.com", "wiki"); }.
Voir également
Fonctions
| • | llListFindList | – | Trouve un list dans un autre list | |
| • | llGetSubString | – | Extrait un string d’un autre string |