LlSubStringIndex/fr

From Second Life Wiki
< LlSubStringIndex
Revision as of 14:26, 21 March 2008 by Gally Young (talk | contribs) (Localized to french)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Description

Fonction: integer llSubStringIndex( string source, string motif );

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
Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.