VBScript ci mette a disposizione l'oggetto TextStream, grazie al quale è
possibile creare, leggere e scrivere su un file di testo. Le applicazioni legate
a questo oggetto sono innumerevoli; ad esempio, si può realizzare un
contatore: ad ogni accesso alla pagina si legge il valore nel file di testo,
e lo si riscrive incrementato di un'unità. Oppure si può creare
un file per le statistiche, in cui memorizzare la data e l'ora di accesso ad
una pagina.
Iniziamo con il realizzare un contatore:
<SCRIPT LANGUAGE=vbscript>
<!--
Set fso = CreateObject("Scripting.FileSystemObject")
contatore="c:contatore.txt"
if not fso.FileExists (contatore)then
fso.CreateTextFile (contatore)
Set OggFile = fso.GetFile (contatore)
Set OggTextStream = OggFile.OpenAsTextStream(2)
OggTextStream.WriteLine "0"
OggTextStream.Close
end if
Set OggFile = fso.GetFile (contatore)
Set OggTextStream1 = OggFile.OpenAsTextStream(1)
valore=OggTextStream1.ReadLine
OggTextStream1.Close
Set OggTextStream = OggFile.OpenAsTextStream(2)
OggTextStream.WriteLine cstr(cint(valore)+1)
OggTextStream.Close
//-->
</SCRIPT>
Lo script è composto da una prima parte che si occupa di verificare
se esiste il file di testo; se non esiste, lo crea e gli inserisce dentro il
valore 0.
Il passo successivo è quello di leggere il valore contenuto nel file
di testo, che poi viene incrementato e scritto nel file di testo.
Si noti la differenza tra l'accesso al file in scrittura ed in lettura: in lettura
si ha OpenAsTextStream(1), mentre in scrittura OpenAsTextStream(2).
L'altro modo per aprire il file di testo è in accodamento, usando OpenAsTextStream(8).
La scrittura in accodamento è proprio quella che ci occorre per realizzare un file di log.
<SCRIPT LANGUAGE=vbscript>
<!--
Set fso = CreateObject("Scripting.FileSystemObject")
logfile="c:logfile.txt"
if not fso.FileExists (logfile)then
fso.CreateTextFile (logfile)
end if
Set OggFile = fso.GetFile (logfile)
Set OggTextStream = OggFile.OpenAsTextStream(8)
OggTextStream.WriteLine now()
OggTextStream.Close
Set OggTextStream1 = OggFile.OpenAsTextStream(1)
Do While Not OggTextStream1.AtEndOfStream
stringa = OggTextStream1.ReadLine
document.write stringa & "<br>"
loop
OggTextStream1.Close
//-->
</SCRIPT>
Anche in questa applicazione viene controllata l'esistenza del file di log
e, se necessario, viene creato. Il file viene poi aperto in accodamento e gli viene scritta la data e l'ora
dell'accesso.
Per dimostrarne il funzionamento, il file viene poi aperto e con un ciclo Do
While-Loop vengono visualizzati tutti gli accessi.
Come l'oggetto FileSystem, anche l'oggetto TextStream è utilizzato per
lo più lato server. Con i due esercizi appena proposti, abbiamo infatti
creato un contatore di accessi come se ne vedono tanti nei siti internet, ed
un file di statistiche.
Non solo i file di testo possono essere utilizzati come file di configurazione, oppure, se si è capaci, possono essere usati come database per piccole applicazioni. Alcuni forum sfruttano 2 file di testo per funzionare, uno per gli utenti ed uno per i messaggi. Potrebbe essere un ottimo esercizio per verificare le conoscenze di VBScript apprese finora.