Forums

Help login failed by Plash on Jeudi, 26.Avril 2012 18:22
Second Life connection impossible by Doggy on Jeudi, 26.Avril 2012 17:25
Breedable pets et animals Second Life by aden on Samedi, 31.Mars 2012 19:13
Shapes Mesh by born Resident on Lundi, 20.Février 2012 11:20
Tuto Puppeteer by Josiane on Mercredi, 01.Février 2012 13:34
Transparence de la tenue by hani amaterasu on Vendredi, 27.Janvier 2012 22:50
Ajouter des faces, où des arêtes by brucie on Jeudi, 26.Janvier 2012 16:02

Fonction remplace caractère
Note des utilisateurs: / 2
MauvaisTrès bien 
Librairie Scripts
Écrit par Garmin K   
Ce script permet de remplacer toutes les occurences d'un caractère par un autre caractère ; il fait de même avec toutes les occurences d'une chaîne par une autre.

 

/*
Ce script permet de remplacer toutes les occurences d'un caractère par un autre caractère ; il fait de même avec toutes les occurences d'une chaîne par une autre.
*/

integer iChan = 17;

//////////////////////////////////////////
//String Replace Function: from an idea of Chad Statosky, completed by Strife Onizuka,
//humanized by Garmin Kawaguichi
string $StringReplaceString(string sFrom, string sTo, string sSource) //sFrom replace sTo in sSource
{
    integer iLngFrom = llStringLength(sFrom) - 1;
    if(iLngFrom > -1)
    {
        string  sCopySource = sSource;
        integer iPointer = -1;
        integer iLngTo = llStringLength(sTo) - 1;
        @loop; //Oh le joli bug de l'éditeur LSL qui teint toute la ligne en bleu!!!.
        integer iPnt2Repl = llSubStringIndex(sCopySource, sFrom) + 1;
        if(iPnt2Repl)
        {
            sCopySource = llGetSubString(sSource = llInsertString(llDeleteSubString(sSource, iPointer += iPnt2Repl, iPointer + iLngFrom), iPointer, sTo), (iPointer += iLngTo) + 1, -1);
            jump loop;
        }
    }
    return sSource;
}
//////////////////////////////////////////

default
{
    state_entry()
    {
        llListen(iChan, "", llGetOwner(), ""); //uniquement l'owner
    }
   
    listen(integer iChanRec, string sName, key kId, string sMessaj)
    {
//utilisation de la fonction pour remplacer "o" par "✿"
        string sMessaj2 = $StringReplaceString("o", "✿", sMessaj);
//en enchaînant les appels à la fonction, on effectue plusieurs remplacements
        string sMessaj3 = $StringReplaceString("O", "✿", sMessaj2);
        string sMessaj4 = $StringReplaceString("a", "ღ", sMessaj3);
        string sMessaj5 = $StringReplaceString("A", "ღ", sMessaj4);
        llSay(0, sMessaj5);

//Les 4 appels précédents peuvent tenir sur une seule ligne en appelant la fonction comme 3ème paramètre (spectaculaire mais vite illisible)
//Pour les curieux : ça fait la même chose que les 4 appels précédents, mais dans l'ordre inverse (si l'auteur était moins fainéant, il aurait pû mieux faire...)
        //llSay(0, $StringReplaceString("O", "✿", $StringReplaceString("o", "✿", $StringReplaceString("a", "ღ", $StringReplaceString("A", "ღ", sMessaj)))));

//Ça marche aussi pour des chaînes de caractères :
        //llSay(0, $StringReplaceString("Coucou", "Salut vieille mule!!!", sMessaj));
    }
   
    on_rez(integer iPnum)
    {
        llResetScript();
    }
}

/*
Placer ce script dans une prim. Dans le chat entrer /17 Ah bonjour petit Nicolas qui aime le chocolat.
La prim affichera dans le chat la chaîne modifiée.
*/

 

 


Placer ce script dans une prim. Dans le chat entrer /17 Ah bonjour petit Nicolas qui aime le chocolat.
La prim affichera dans le chat la chaîne modifiée.

 

 

Messages 

 
#1 Vincent6 Magic 2009-08-25 13:54 Il me semble qu'il y a BEAUCOUP plus simple pour faire ca :

string StringReplace(string sFrom, string sTo, string sSource) {
list tmp = llParseString2List(sSourc e, [from], []);
return llDumpList2String(tmp, sTo);
}
Citer
 

Ajouter un Message

Si vous ne voyez pas vos messages c est que vous n êtes pas enregistré sur Avatars-3d en tant que membre. Ils seront examinés par un administrateur avant d être publié! Si vous désirez publier rapidement vos messages enregistrez vous ici

Code de sécurité
Rafraîchir