Corso Di Base Ciclo 2

  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Corso Di Base Ciclo 2 as PDF for free.

More details

  • Words: 948
  • Pages: 16
Corso di Base 2: Stringhe e Liste (Salahzar Stenvaag)

0. Propedeutico: A.

B.

C.







Ricordatevi di avere attivo il gruppo "Second Life Italian Mentor" Quando rezzate i box fateli "share with group" e full permissions (copy/modify/transfer) 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. In caso estremo copiate lo script non funzionante nel vostro inventory, accertatevi che sia full permissions e passatemelo. Cliccate anche sulla scatola distributrice per avere questa notecard e tutto il materiale del corso. Per partecipare a questo corso dovete sapere costruire uno script elementare (New Script) e conoscere la llListen, e l’evento listen.

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

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
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); estrarre 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+llGetStringLe ngth(stringanonvoluta)); } }

10. Inserire in mezzo ad una stringa: string modified=llInsertString("new",1,"ciao"); produrrà la stringa "cnewiao" (a partire dal 2° carattere, che si chiama 1: 0 sarebbe stato il primo) ===> 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).

14. Stringhe e liste. Liste e stringhe sono molto connesse e sono utilissime per la comunicazione fra prim e con il web. Prossima lezione sulle liste e sul modo di passare da stringhe a liste e viceversa. :)

Related Documents