Difference between revisions of "LlSubStringIndex/fr"
Gally Young (talk | contribs) (Localized to french) |
(proofreading) |
||
Line 4: | Line 4: | ||
|return_type=integer|p1_type=string|p1_name=source|p2_type=string|p2_name=motif | |return_type=integer|p1_type=string|p1_name=source|p2_type=string|p2_name=motif | ||
|func_footnote=Si le '''motif''' n’est pas trouvé dans la '''source''', la fonction renvoie la valeur {{HoverText|-1|nombre négatif, 0x{{LSL_Hex/Write|-1}}}}.<br/> | |func_footnote=Si le '''motif''' n’est pas trouvé dans la '''source''', la fonction renvoie la valeur {{HoverText|-1|nombre négatif, 0x{{LSL_Hex/Write|-1}}}}.<br/> | ||
L’index du premier caractère | Remarque : L’index du premier caractère d'une chaine est {{HoverText|0|zéro}} | ||
|func_desc | |func_desc | ||
|return_text=correspondant à l’index du '''motif''' dans la '''source'''. | |return_text=correspondant à l’index du premier caractère de la chaine '''motif''' dans la chaine '''source'''. | ||
|spec | |spec | ||
|caveats=*Réalise un contrôle littéral (sensible aux majuscules). | |caveats=*Réalise un contrôle littéral (sensible aux majuscules). | ||
Line 13: | Line 13: | ||
|constants | |constants | ||
|examples=Contrôle sur le nom: | |examples=Contrôle sur le nom: | ||
< | <lsl> | ||
default | default | ||
{ | { | ||
Line 29: | Line 29: | ||
//par ailleurs vous pourriez également contrôler le prénom avec "Prénom " (espace à la fin) | //par ailleurs vous pourriez également contrôler le prénom avec "Prénom " (espace à la fin) | ||
for(i = 0; i < NumDet; ++i) | for(i = 0; i < NumDet; ++i) | ||
if(~llSubStringIndex(llDetectedName(i), " Linden")) | { | ||
if(~llSubStringIndex(llDetectedName(i), " Linden")) llInstantMessage(llDetectedKey(i), "Vu !"); | |||
} | |||
} | } | ||
} | } | ||
</ | </lsl> | ||
|helpers= | |helpers= | ||
Tests pour voir si un string contient une copie d’un autre string : | Tests pour voir si un string contient une copie d’un autre string : | ||
Line 39: | Line 40: | ||
1. Concis & conventionnel: | 1. Concis & conventionnel: | ||
< | <lsl> | ||
integer Contient(string source, string motif) // http://wiki.secondlife.com/wiki/llSubStringIndex | integer Contient(string source, string motif) // http://wiki.secondlife.com/wiki/llSubStringIndex | ||
{ | { | ||
return 0 <= llSubStringIndex(source, motif); | return 0 <= llSubStringIndex(source, motif); | ||
} | } | ||
</ | </lsl> | ||
< | <lsl> | ||
integer | integer Commence_par(string source, string motif) // http://wiki.secondlife.com/wiki/llSubStringIndex | ||
{ | { | ||
return llGetSubString(source, 0, llStringLength(motif) - 1) == motif; | return llGetSubString(source, 0, llStringLength(motif) - 1) == motif; | ||
} | } | ||
</ | </lsl> | ||
< | <lsl> | ||
integer | integer Termine_par(string source, string motif) // http://wiki.secondlife.com/wiki/llSubStringIndex | ||
{ | { | ||
return llGetSubString(source, -llStringLength(motif), -1) == motif; | return llGetSubString(source, -llStringLength(motif), -1) == motif; | ||
} | } | ||
</ | </lsl> | ||
Note: certaines des fonctions précédentes fonctionnent sans même utiliser llSubStringIndex. | Note: certaines des fonctions précédentes fonctionnent sans même utiliser llSubStringIndex. | ||
Line 65: | Line 66: | ||
2. Plus ingénieux et plus court (~54 bytes au lieu ~60): | 2. Plus ingénieux et plus court (~54 bytes au lieu ~60): | ||
< | <lsl> | ||
integer Contient(string source, string motif) // http://wiki.secondlife.com/wiki/llSubStringIndex | integer Contient(string source, string motif) // http://wiki.secondlife.com/wiki/llSubStringIndex | ||
{ | { | ||
return ~llSubStringIndex(source, motif); | return ~llSubStringIndex(source, motif); | ||
} | } | ||
</ | </lsl> | ||
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: 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é. |
Latest revision as of 01:26, 27 June 2008
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 premier caractère de la chaine motif dans la chaine source.
• string | source | |||
• string | motif |
Si le motif n’est pas trouvé dans la source, la fonction renvoie la valeur -1.
Remarque : L’index du premier caractère d'une chaine 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: <lsl> 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 !"); } }
} </lsl>
Codes utiles
Tests pour voir si un string contient une copie d’un autre string :
1. Concis & conventionnel:
<lsl> integer Contient(string source, string motif) // http://wiki.secondlife.com/wiki/llSubStringIndex {
return 0 <= llSubStringIndex(source, motif);
} </lsl>
<lsl> integer Commence_par(string source, string motif) // http://wiki.secondlife.com/wiki/llSubStringIndex { return llGetSubString(source, 0, llStringLength(motif) - 1) == motif; } </lsl>
<lsl> integer Termine_par(string source, string motif) // http://wiki.secondlife.com/wiki/llSubStringIndex { return llGetSubString(source, -llStringLength(motif), -1) == motif; } </lsl>
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):
<lsl> integer Contient(string source, string motif) // http://wiki.secondlife.com/wiki/llSubStringIndex {
return ~llSubStringIndex(source, motif);
} </lsl>
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 |