Primi passi nella programmazione in vbs con semplici esempi di iterazioni e cicli
Open Eye realizzazione siti web- info@open-eye.it

Visual Basic Script: primi passi


Questo articolo vuole essere un’introduzione al mondo dello scripting in visual basic script (vbs) e della programmazione in generale. Il motivo per il quale è stato scelto il vbs come linguaggio di insegnamento è la sua estrema semplicità di lettura/scrittura, oltre che di “immediatezza” nei risultati apprezzabili anche dai principianti.

Prima di cominciare con il codice, qualche brevissima nozione di teoria.

Scripting in visual basic - Brevi nozioni teoriche

La prima cosa da tener presente, è che la programmazione è sostanzialmente una maniera per far fare al computer qualcosa che “non vogliamo” fare noi o che, semplicemente, sarebbe troppo lungo o difficile fare da soli.
Il computer, però, non è un essere intelligente, anzi. Essendo molto stupido, ha bisogno che gli venga spiegata ogni cosa passo passo, con delle semplici istruzioni, per poi eseguirla in maniera estremamente rapida.
Quando scriviamo un programma non facciamo altro che racchiudere tutte le istruzioni in un unico “documento” che il computer andrà ad eseguire ciecamente dall’inizio alla fine; le istruzioni, ovviamente, possono essere di vario tipo a seconda di quello che vogliamo fare, ma possiamo pensare di racchiuderle in tre grossi tipi:

1. istruzioni “semplici”: sono tutte quelle istruzioni che dicono al computer di “fare” qualcosa; ad esempio “copia un file”, “fai un suono”, “apri una pagina internet”, ecc;
2. istruzioni condizionali: sono quelle istruzioni che chiedono al computer di “decidere” quale azione intraprendere a seconda di una scelta che deve compiere; ad esempio “se oggi è il primo del mese, manda una mail, altrimenti non fare niente”, “se l’utente ha premuto invio, mandagli un messaggio di avviso, altrimenti esci dal programma”, ecc;
3. istruzioni ripetute o “cicli”: sono quelle istruzioni che dicono al computer di continuare a fare qualcosa fino a che non capita un determinato evento o per un numero limitato di volte; ad esempio “invia per dieci volte la stessa email”, “fino a che l’utente non preme il tasto Ok continua a dargli lo stesso avviso”, ecc.

Tutto quello che gira dentro un computer, tutti i programmi, possono racchiudersi in una serie di istruzioni che rientrano in uno di questi tre casi… tutto sta nel tradurre il nostro pensiero in una di queste tre tipologie di operazione, ed il gioco è fatto!

Vediamo subito qualche esempio pratico di quanto scritto sopra.

Scripting in visual basic - Istruzioni semplici: Hello World.vbs

Come abbiamo detto prima, il primo passo di ogni programma è il “tradurre” quello che abbiamo in testa in una serie di istruzioni; per tradizione informatica, il primo programma che si impara a fare in un nuovo linguaggio è il classico “Hello world”, ovvero dare un’istruzione al computer che gli faccia visualizzare un messaggio di saluto al mondo… quindi, quello che vogliamo fare è questo, salutare il mondo!
Contrariamente a moltissimi altri linguaggi di programmazione, il vbs è molto “user friendly” da questo punto di vista: quello che fa al caso nostro è una message box, ovvero il classico messaggio che usa windows quando vuole avvertirci di qualcosa.

Per creare il nostro primo programma basta andare nella cartella dove vogliamo mettere i nostri esperimenti in vbs, creare un nuovo documento di testo e rinominarlo in maniera chiara, ad esempio “Hello world.vbs”, confermando la volontà di cambiare l’estensione del documento quando windows ci chiederà se siamo sicuri.
Attenzione: per quanto possa essere pedante e noioso, state bene attenti a dare un nome chiaro al vostro programma, che vi permetta di capire cosa faccia anche dopo che sono passati anni dal momento in cui l’avete scritto… fidatevi: se prendete subito questa abitudine, sarà molto più semplice mantenerla in futuro!

Apriamo il nostro file vbs cliccandoci sopra con il tasto destro e scegliendo un editor di testo (personalmente consiglio textpad con i relativi dizionari).

Scriviamo:

'---------------------
' Name: Hello world.vbs
' Author: Jeff Skyrunner
' Date: 21/06/10
' Desc: Visualizza un messaggio di saluto
'---------------------

' Message Box di saluto
Msgbox "Hello World!"


Et voilà. Salvate e doppio cliccate sul file (ovviamente nella cartella, non sul documento di testo) e vedrete la vostra bellissima msgbox comparire in tutto il suo splendore!
Come potete facilmente arguire, tutto quello che c’è prima del carattere ‘ è un commento e viene ignorato dal computer; serve solamente a noi per commentare e rendere più leggibile il codice.

Ovviamente, il file sarebbe potuto semplicemente essere composto dalla riga

Msgbox "Hello World!"

Ed il risultato sarebbe stato esattamente lo stesso… tuttavia, esattamente come per la regola di dare nomi chiari ai file, anche quella di commentare il codice è una di quelle norme che all’inizio possono essere noiose ed inutili, ma una volta presa l’abitudine, vi sarà molto più che utile.

Scripting in visual basic - Istruzioni condizionali: Specchio.vbs

Supponiamo adesso di voler realizzare un programma che ripete esattamente quanto digitato dall’utente, tranne nel caso in cui l’utente digiti la parola “gatto”, nel qual caso il programma risponde “cane”.
Seguendo quanto scritto nel paragrafo “brevi nozioni teoriche” proviamo a tradurre questo in uno (o più) dei tipi descritti sopra: “se l’utente scrive gatto allora rispondi cane, altrimenti ripeti quanto ha scritto”.
Abbastanza facile, no?

Per leggere quanto scrive l’utente, utilizziamo la input box, ovvero una finestrella che chiede all’utente di digitare qualcosa al suo interno.

Creiamo il nostro file di testo, rinominandolo “Specchio.vbs” e scriviamo:


'-------------------------------
' Name: Specchio.vbs
' Author: Jeff Skyrunner
' Date: 21/06/10
' Desc: Risponde "cane" nel caso in cui l'utente digiti "gatto"
' altrimenti ripete quanto inputato
'------------------------------

' Input Box di lettura del messaggio
sToCompare = InputBox("Scrivi una parola")

' Controllo se la stringa digitata dall'utente e' uguale a quella
' da confrontare
if sToCompare = “gatto” Then
msgbox "Cane"
Else
msgbox sToCompare
End if



Rispetto al programma di prima abbiamo qualche riga in più, ma facilmente leggibile… l’istruzione

sToCompare = InputBox("Scrivi una parola")

vuol dire “Fai comparire una input box con dentro scritta la frase “Scrivi una parola” e memorizza quanto scritto dall’utente nella variabile sToCompare”; se non sapete cosa sia una variabile, potete facilmente immaginarla come un contenitore all’interno dei quale mettete dei dati, in questo caso le parole digitate dall’utente.

Il blocco successivo di istruzioni

if sToCompare = “gatto” Then
msgbox "Cane"
Else
msgbox sToCompare
End if


Vuol dire “Se la variabile sToCompare vale “gatto”, allora fai comparire la scritta “Cane”, altrimenti fai comparire quanto scritto nella variabile sToCompare”. Notate che il vbs fa differenza tra minuscole e maiuscole, ovvero, come si dice in gergo, è case sensitive… pertanto, la parola “gatto” è diversa da “Gatto”…

Se il discorso variabili e confronti è un po’ oscuro, non vi preoccupate, ci torneremo nelle prossime lezioni. Per il momento l’importante è capire il funzionamento delle istruzioni condizionali, ovvero del blocco di istruzioni “If … then … else”.

Scripting in visual basic - Cicli: CicloFor.vbs

E se volessimo ripetere un messaggio dieci volte? Beh, la “traduzione” è immediata in questo caso e possiamo vederlo direttamente nel codice, creando il programma CicloFor.vbs

'-------------------------------
' Name: CicloFor.vbs
' Author: Jeff Skyrunner
' Date: 21/06/10
' Desc: Ripete il messaggio 10 volte
'------------------------------

' Ciclo for
For i=1 to 10
msgbox "Sono alla ripetizione numero " + CStr(i)
Next



Il punto centrale del programma è l’istruzione “For … to … Next” che compone il ciclo; al suo interno c’è l’istruzione

msgbox "Sono alla ripetizione numero " + CStr(i)

Che vuol dire “visualizza una finestra che dice “sono alla ripetizione numero “ e visualizza il valore di i” (l’istruzione CStr(i) vuol dire “converti in stringa” e serve per permettere al programma di fare “l’appending della stringa”… ma lo vedremo nelle prossime lezioni); lanciando il programma possiamo quindi notare che ad ogni iterazione il valore di i aumenta di uno, permettendo quindi di “contare” fino a 10.


Un alternativa al ciclo for è il ciclo while, che analizzeremo però nelle prossime lezioni.

Scripting in visual basic - Quarto passo: il trucco

Se si vuole dare un tocco in più di colore, si possono tranquillamente aggiungere molti altri passaggi per rifinire i dettagli del viso, come ad esempio applicando colori e tonalità che possano emulare un trucco semplice, che questo vada dal contorno occhi, al fard, all’ombretto e via dicendo.
Ma concentriamoci sul fard e osserviamo i passaggi per ottenere un risultato che possa apparire il più possibile realistico.
Andiamo quindi a creare un livello sul quale lavorare, ciccando su livello > nuovo > livello, scegliete un pennello morbido (del tipo con l’alone /sfumatura intorno) ed un colore a piacimento; non troppo tenue o pastello per via dell’applicazione che andremo ad effettuare successivamente, che potrebbe portare il colore a divenire pressoché invisibile.
A questo punto cominciate a passare il pennello sulle gote, pasticciando fino ad ottenere un bel mascherone colorato pesante.
In questo caso si può proseguire in due modi, a piacimento:
1- settando il livello dalla tendina su “sovrapponi”
2- ciccando su filtro > sfocatura > controlla sfocatura applicando in questo modo la sfocatura del fard a vostro piacimento.
Ed il gioco è fatto!

Per quanto riguarda capelli, colore dell'iride, sopracciglia e abiti, il procedimento è sempre lo stesso a ripetersi con questo settaggio di colorazione immagine > regolazioni > bilanciamento colore.
Per quanto riguarda invece la colorazione dei denti (nel caso fossero in evidenza) il procedimento non cambia, ma va effettuato questo settaggio immagine > regolazioni > tonalità saturazione e settate la luminosità esattamente uguale a quello usato per il bianco degli occhi.

A cura di Jeff Skyrunner