Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Corso di Base Ciclo 2: Stringhe e Liste
- 0. Propedeutico:
- ==========
- 1 - Ricordatevi di avere attivo il gruppo "Second Life Italian Mentor"
- 2 - Quando rezzate i box fateli "share with group" e full permissions (copy/modify/transfer)
- 3 - Gli script dentro i box fateli "share with group" e full permissions (copy/modify/transfer)
- Questo serve perchè in caso di problemi io possa vedere ed eventualmente correggere i vostri script.
- [[L'esperienza della prima parte del corso evidenzia che occorre un sistema di controllo del genere]]
- Cliccate anche sulla scatola distributrice per avere questa notecard e tutto il materiale del corso.
- 1. Costruite un box con il seguente script "scheletro":
- =================================
- default
- {
- state_entry()
- {
- llListen(10,"",llGetOwner(),"");
- }
- listen(integer channel, string name, key avkey, string str)
- {
- // Qui viene fatto l'esercizio
- string result=str;
- llOwnerSay(result);
- }
- }
- Questo vi consente di NON disturbare i vicini. Per parlare al vostro oggetto scrivete
- /10 qualcosa
- e l'oggetto scriverà SOLO a voi
- Object: qualcosa
- 2. Funzioni per la gestione delle stringhe.
- =========================
- Le stringhe sono MOLTO importanti per i vostri script, quindi DOVETE conoscerle bene.
- In questo corso accanto ad ogni funzione di stringa viene anche indicato a cosa potrebbe essere utile.
- Gestione elementare delle stringhe:
- string x="Questa è una stringa";
- string sGLOBAL="Stringa globale";
- I global vanno scritti all'inizio del programma!!!
- ====>
- A cosa serve: ad impostare un valore costante. Usatissimo nei programmi. E' obbligatorio usare delle costanti per tutte le stringhe che potrebbero mutare. Quindi sì:
- string sOK="OK";
- ....
- llSay(0,sOK);
- perchè così se invece di OK volete scrivere in un altro momento "JA" oppure "Corretto", lo potete fare
- 3. I caratteri e la lunghezza di una stringa
- ==========================
- Una stringa è composta da "caratteri".
- Per conoscere il numero di caratteri in una stringa:
- -------------------------------------------------------
- integer llGetStringLength(string src)
- esempio llGetStringLength("ciao!") ritorna il NUMERO 5. Se dovete visualizzarlo in una llSay, aggiungete (string) in testa:
- llSay(10,"La lunghezza è "+(string)llGetStringLength(str));
- Modificate lo scheletro in modo da visualizzare la lunghezza in caratteri di quello che scrivete
- ====>
- A cosa serve: è importante poter conoscere quanti caratteri ha una stringa. Vedi più oltre, ma intanto considerate lo script:
- integer i;
- for(i=0;i<llGetStringLength(str);i++)
- {
- llOwnerSay("Il carattere #"+(string)i+" è: "+llGetSubString(str,i,i);
- }
- 4. Confrontare una stringa con un'altra o con una stringa nota:
- =======================================
- Usate
- == per è uguale a,
- != per è diversa da
- if(str=="") llOwnerSay("vuota"); else llOwnerSay("piena");
- Mettete nello scheletro questo test in modo che vi dica se la stringa è vuota o meno
- ===>
- A cosa serve:
- Fondamentale per fare fare al vostro programma strade diverse a seconda di quello che ha introdotto l'avatar o situazioni particolari rappresentate da eventi o stringhe.
- 5. Concatenare due stringhe:
- ==================
- Usate + per "congiungere" due o più stringhe. NOTA: non è una addizione aritmetica e non esiste il "-"
- string str="pippo";
- string a="str "+str;
- produce in a il valore "str pippo"
- Esempio: provate nello scheletro a mettere llOwnerSay("raddoppio la stringa: "+str+"-"+str);
- ===>
- A cosa serve:
- E' usatissima specie per visualizzare a video delle informazioni di debug. O comunque informative. O per creare stringhe più complesse.
- 6. Estrarre il primo carattere di una stringa:
- ===========================
- string char=llGetSubString(str,0,0);
- estrerre l'ultimo carattere di una stringa:
- string lastchar=llGetSubString(str,-1,-1);
- Notate che l'ordinamento dei caratteri va da 0: il primo carattere a -1: l'ultimo carattere. -2 rappresenta il penultimo carattere.
- ===>
- A cosa serve:
- Potete usarlo per verificare che il primo carattere valga un certo valore. (Per poterlo eliminare, oppure per verificare delle abbreviazioni senza controllare tutto il codice).
- 7. Modificare una stringa: Metterla in maiuscolo o minuscolo
- -------------------------------------------------
- string upper=llToUpper("ciao"); restituisce "CIAO"
- string lower=llToLower("CiaO"); restituisce "ciao"
- ====>
- A cosa serve: per evitare di essere confusi dall'input del avatar se chiedete che risponda "fai" e lui scrive Fai il test non funzionerebbe
- 8. Cercare una sottostringa
- =================
- integer llSubStringIndex("tanto va la gatta al lardo","gatta");
- restituisce l'indice in cui compare "gatta" dentro la frase. 0=a partire dal primo carattere e così via.
- ====> A cosa serve
- Importantissima per cercare delle informazioni in una stringa per poterle cancellarle e/o manipolarle.
- 9. Modificare una stringa.
- Non si può modificare una stringa senza riassegnarla:
- -----------------------------------------------------------
- string src=llDeleteSubString(src,0,0); cancella il primo carattere di una stringa
- se src era "Ciao!", dopo la nuova src diventa "iao!";
- ====> A cosa serve:
- eliminare delle cose non volute nell'input:
- integer found=1;
- while(found==1)
- {
- integer found=llSubStringIndex(str,stringanonvoluta);
- if(found>=0)
- {
- str=llDeleteSubString(str,found,found+llGetStringLength(stringanonvoluta));
- }
- }
- 10. Inserire in mezzo ad una stringa:
- =======================
- string modified=llInsertString("new",1,"ciao");
- produrrà la stringa "cnewiao"
- ===> A cosa serve:
- Per inserire informazioni extra dentro una stringa:
- integer found=llSubStringIndex(str,":");
- if(found>=0)
- {
- str=llInsertString("56",found+1,"Il valore è: controlla");
- }
- Str varrà: "Il valore è: 56 controlla";
- 11. Rimuovere gli spazi da una stringa:
- ========================
- string stringa_pulita=llStringTrim(str,STRIM_TRIM);
- toglie gli spazi in testa ed in fondo
- usate STRING_TRIM_HEAD per togliere solo gli spazi in testa
- usate STRING_TRIM_TAIL per togliere solo gli spazi in coda
- 12. Contenuti speciali dentro le stringhe:
- ==========================
- \t = 4 spazi
- \n = interrompi riga (vai a capo) utilissima per llSetText ed altri
- \" = per inserire dei doppi apici
- \\ = per inserire una barra rovescia
- string llEscapeURL(string) ritorna una stringa valida per HTTP, ma anche utile per VEDERE esattamente il contenuto della stringa.
- string llUnescapeURL(string)
- 13. Funzioni stringa evolute:
- ==================
- * string llBase64ToString(string) trasforma un contenuto "binario" in stringa
- * string llMD5String(string src,integer nonce) "firma" un documento (sicurezza)
- * string llStringToBase64(string str) trasforma una stringa in "binario"
- * string llXorBase64StringCorrect(string s1, strings2) applica una chiave ad una stringa (sicurezza).
- Prossima lezione sulle liste e sul modo di passare da stringhe a liste e viceversa. :)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement