L`Oggetto File

Transcript

L`Oggetto File
Programmare VBScript
Pag. 2
INDICE
Programmiamo nella pagina web
Gli oggetti
Gli oggetti del file system
L'oggetto drive
L'oggetto cartella
L'oggetto file
L'oggetto textstream
Applicazioni textstream
Gestione dei file
Le msgbox
Accesso ai controlli del form
Riepilogo degli eventi
Bruno Pelosi
Programmare VBScript
Pag. 3
PROGRAMMIAMO NELLA PAGINA WEB
Per inserire codice vbscript in una pagina web si aprirà un tag HTML script come segue:
<SCRIPT LANGUAGE="VBScript">
Codice
</SCRIPT>
Eseguendo il codice genereremo un documento nel quale i codici stessi diverranno operativi. Il documento è
un’altra pagina web che contiene il risultato dei codici vbscript.
Per non visualizzare il codice nei browser che non supportano il tag <script> si può inserire il codice
VBScript entro il tag commento <!-- -->, in questo modo:
<SCRIPT LANGUAGE="VBScript">
<!—
Codice
-->
</SCRIPT>
Il codice Vbscript può essere inserito in HEAD o in BODY a seconda della sua funzione.
Per scrivere un messaggio si usa il comando:
Document.Write
Con il metodo Write si possono usare contenuti testuali fra tag HTML ed eseguire calcoli:
Document.Write "<H1>Messaggio</H1>"
Document.Write (3*3)
Per dichiarare le variabili si usa l'istruzione Dim senza definire il tipo
Dim var
Oppure se sono più di una:
Dim var1, var2, ecc.
L’input delle variabili può avvenire attraverso form o tramite inputbox che si usa come segue:
<script language="VBScript">
<!-dim a
a=inputbox("Inserisci un valore:")
document.write a
//-->
</script>
Gli operatori logici e aritmetici sono simili al Visual Basic, come pure le funzioni matematiche, le strutture
condizionali e iterative.
Bruno Pelosi
Programmare VBScript
Pag. 4
Per le funzioni della data e dell’ora abbiamo la seguente situazione:
date
la data
M = Date
la data di sistema corrente.
time
l'ora
M = Time
l'ora di sistema corrente
now
la data e l'ora
M = Now
la data e l'ora corrente
DateAdd
Aggiunge un periodo di tempo ad una data
per aggiungere un mese al 31 marzo 98:
M = DateAdd("m", 1, "31-Mar-98")
M è 30-Apr-98.
DateDiff
il tempo tra due date
Diff = "Giorni differenza: " & DateDiff("d", Now,
"30/06/2008")
Day
il giorno di una data
M = Day("19/03/2008")
M è 19
Month
il mese di una data
M = Month("19/03/2008")
Mè3
Year
l'anno di una data
M = Month("19/03/2008")
M è 2008
MonthName
il nome del mese
M = Month("19/03/2008")
M è Marzo
WeekDay
un numero corrispondente al giorno della
settimana
M = Weekday("19/03/2008")
M è 4 perché il 19/03/2008 è mercoledì
WeekDayName
il nome del giorno della settimana
M= WeekdayName("19/3/2008")
M è mercoledì
Second
i secondi
M = Second(Now)
M sono i secondi (0-60)
Minute
i minuti
M = Minute(Now)
M sono i minuti (0-60)
Hour
l'ora
M = Hour(Now)
M è l'ora (0-23)
FormatDateTime
la data e l'ora secondo un formato
FormatDateTime(now, 0)
dà 19/03/2008 9.08.48
FormatDateTime(now, 1)
dà domenica 19 marzo 2008
FormatDateTime(now, 2)
dà 19/03/2008
FormatDateTime(now, 3)
dà 9.08.48
FormatDateTime(now, 4)
dà 09.08
Bruno Pelosi
Programmare VBScript
Pag. 5
Mentre la tabella seguente riepiloga le azioni sulle stringhe:
Asc
il codice ASCII di un carattere
M = Asc("A")
M= 65
Chr
un carattere dato il suo codice ASCII
M= Chr(65)
M= A.
Instr
la posizione di una stringa in un'altra
a ="cerca un carattere"
Car = "a"
M = Instr(2, a, car)
Cerca a partire dalla posizione 2 con M=5.
LCase
minuscolo
a = "MINUSCOLO"
M = LCase(a)
M= "minuscolo".
Ucase
maiuscolo
M = UCase("maiuscolo")
M= "MAIUSCOLO”
Left
N caratteri a sinistra della stringa
a = "caratteri"
M= Left(a, 3) '
M= "car".
Rigth
N caratteri dalla destra di una stringa
A= "carattere"
M= Right(A, 3)
M= "ere".
Mid
N caratteri da un punto stabilito della stringa
M= Mid("caratteri", 4, 2)
M= "tt".
Len
N caratteri di una stringa
M = Len("caratteri") '
M= 9 caratteri
LTrim
Toglie gli spazi a sinistra
Rtrim
Toglie gli spazi a destra
M = RTrim(" carattere ")
M= " carattere".
Trim
Toglie gli spazi da entrambi i lati di una stringa
M = Trim(" carattere ")
M= "carattere".
Replace
sostituisce una sottostringa con un'altra
M = Replace("colore rosso ", "rosso", "verde")
M= "colore verde".
Space
Crea una Stringa di spazi
M = Space(10)
M= 10 spazi
Split
Crea un array di stringhe più piccole da una stringa
a = "coloreXèXchiaro”
M = Split(a, "X")
crea un vettore con i tre elementi testuali separati da
X
M (0)= "colore"; M(1) = "è" ; M(2) = "chiaro".
StrComp
Paragona la lunghezza di due stringhe
a = "Ugo":b = "casa":c = "casa"
M = StrComp(c, b) M=0.
M = StrComp(a, b) M= -1.
M= StrComp(b, a) M= 1.
String
Crea una stringa di un carattere ripetuto un certo numero di
volte
M = String(5, "*")
M= "*****".
StrReverse
Inverte una stringa
M = StrReverse("rosso")
M= "ossor".
M = LTrim(" caratteri
M= "caratteri
”
")
Bruno Pelosi
Programmare VBScript
Pag. 6
Gli oggetti
In VBScript il concetto di oggetto è simile al VB: è un'entità che ha proprietà, azioni (metodi) e genera
eventi.
Il primo oggetto da verificare è Document, il quale, oltre ad essere un’estensione di un oggetto JavaScript,
rappresenta la pagina HTML.
DOCUMENT
PRINCIPALI PROPRIETÀ
USO
document.alinkcolor: colore collegamenti attivi.
document.linkcolor: colore collegamenti.
document.vlinkcolor: colore collegamenti visitati.
document.bgcolor: colore sfondo della pagina.
document.title: titolo della pagina.
document.url: URL della pagina.
<script language="VBScript">
<!-document.write "alinkColor " & document.alinkColor &
"<br>"
document.write "linkColor " & document.linkColor &
"<br>"
document.write "vlinkColor " & document.vlinkColor &
"<br>"
document.write "bgcolor " & document.bgcolor & "<br>"
document.write "title " & document.title & "<br>"
document.write "url " & document.url & "<br>"
//-->
</script>
DOCUMENT
PRINCIPALI METODI
document.focus: porta in primo piano la finestra del
browser.
document.write: questo metodo consente la scrittura
sulla pagina HTML
document.writeln: come sopra e rinvia "a capo".
EVENTI
document_onclick
document_onkeypress
document_onkeyup
document_onkeydown
document_onmouseou
document_onmouseover
EVENTI PIÙ UTILIZZATI
onclick: quando si fa un click sull'oggetto
onfocus: quando si attiva l'oggetto (ad esempio cliccando all'interno di una textbox)
onblur: quando si lascia un oggetto
onmouseover: quando si è con il mouse sopra l'oggetto
onmouseout: quando si esce con il mouse dall'oggetto
onchange: quando si apportano modifiche all'oggetto
Bruno Pelosi
Programmare VBScript
Pag. 7
PRECISAZIONI
I tag di un modulo sono di solito associati a un nome definito in NAME
<input type=text name=”nome” value=”Bruno”>
e possono essere utilizzati come oggetti.
In qualsiasi punto del documento,individuandolo con il NAME, possiamo agire sull'oggetto modificandone
il contenuto :
<script language="vbscript">
nome.value = "modifica"
</script>
Bruno Pelosi
Programmare VBScript
Pag. 8
Gli oggetti del file system
Gli oggetti fanno del VBScript un robusto e completo linguaggio al pari del JavaScript.
Prima di usare un oggetto bisogna creare un'istanza (dichiararlo e dargli un nome).
Per fare ciò si usa il comando CreateObject:
Set nomeoggetto = CreateObject( "tipo di oggetto")
L'oggetto giusto per lavorare con i file e le cartelle dell'hard disk è FileSystemObject.
Questo controllo serve anche a creare altri oggetti che saranno la cartella, il file o il drive.
Con l’esempio seguente diamo un occhiata al'hard disk:
<script language="vbscript">
Function ShowFile(folderspec)
Dim fso, folder, file, FileItem
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(folderspec)
Set file = folder.Files
For each FileItem in file
document.write FileItem & "<br/>"
Next
End Function
ShowFile("c:")
</script>
L'avvio di questa funzione in una pagina HTML ci avverte che si sta creando una situzione di pericolo,
perché la funzione in parola, con altri comandi, potrebbe addirittura cancellare i file e le cartelle!
Il programma presentato sopra:
•
•
•
Con la funzione ShowFile crea l'oggetto fso, che permette di lavorare con il file system.
Con il comando Set folder = fso.GetFolder(folderspec) crea l'oggetto cartella
con Set file = folder.Files crea l'oggetto file.
Bruno Pelosi
Programmare VBScript
Pag. 9
Il FileSystemObject ha una sola proprietà, Drive, che restituisce l'elenco di tutti i drive disponibili sul
sistema, mentre esistono numerosi metodi per lavorare con file e cartelle:
DriveExists(lettera drive) dà True se il drive esiste.
GetDrive (lettera drive) fornisce un oggetto Drive corrispondente alla lettera indicata
GetDriveName (lettera drive) dà il nome del Drive corrispondente
BuildPath(percorso, nome) aggiunge file o cartelle specificate da nome al percorso corrente
CopyFolder(origine, destinazione, sovrascrivi) copia una cartella da origine a destinazione, se già esistente
viene sovrascritta in base al parametro sovrascrivi
CreateFolder(nome cartella) crea una cartella
DeleteFolder(nome cartella, force) cancella una cartella, con il parametro force=true (cancella anche
cartelle di sola lettura)
FolderExists(nome cartella) dà true o false a seconda che la cartella esista o meno
GetFolder(cartella) fornisce un oggetto cartella corrispondente alla cartella specificata.
GetParentFolderName(cartella) restituisce il nome della cartella che contiene quella specificata
MoveFolder(origine, destinazione) sposta una cartella da origine a destinazione
CopyFile(origine,destinazione, sovrascrivi) copia un file da origine a destinazione, se già esiste lo
sovrascrive in base al parametro sovrascrivi
CreateTextFile(persorso, sovrascrivi, unicode) crea un un file di testo nel percorso specificato. (sovrascrivi,
consente di sovrascivere un file esistente, unicode permette di salvare in formato ASCII o Unicode)
DeleteFile(nome file, force) cancella un file, con il parametro force=true (cancella anche file in sola lettura)
FileExists(percorso file) dà true o false in funzione dell’esistenza del file specificato
GetExtensionName(percorso) dà l'estensione del file
GetFile(percorso) restituisce un oggetto file corrispondente al file specificato
MoveFile(origine, destinazione) sposta un file da origine a destinazione
OpenTextFile(nome file, iomode, crea, formato) crea o apre un file di testo utilizzando iomode per leggere,
scrivere o aggiungere in formato ASCII o Unicode.
Il seguente codice crea un FileSystemObject ed elenca i drive installati sul computer locale:
Dim fso
Dim disco
'Creazione dell'oggetto FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
document.write "dischi presenti:"
For Each disco in fso.Drives
document.write "<BR>Drive =" & disco
next
Bruno Pelosi
Programmare VBScript
Pag. 10
L'Oggetto Drive
L'oggetto Drive permette di cercare le informazioni sui drive disponibili.
Le proprietà dell' oggetto Drive sono:
PROPRIETÀ
AvaiableSpace quantità di spazio disponibile sul drive
DriveLetter lettera del drive
DriveType tipo di drive (unknow, removable, fixed, network, CdRom, RamDisk)
FileSystem tipo di file system (FAT, NTFS, CDFS)
FreeSpace spazio libero disponibile nel drive
IsReady se è pronto restituisce true
Path lettera assegnata al drive
RootFolder cartella principale
SerialNumber numero di serie che identifica il volume del disco
ShareName nome di rete per un drive condiviso
TotalSize dimensioni totali del drive
VolumName dà o imposta in nome del volume per i drive locali
Applicando queste proprietà ad un esempio:
CODICE
<script language="vbscript">
Dim drive
drive="C:"
Set fso = CreateObject("Scripting.FileSystemObject")
document.write "Informazioni sull'Hard Disk<br/>"
document.write "Lettera del Drive: " &
fso.GetDrive(drive).DriveLetter & "<br/>"
document.write "Tipo: " & fso.GetDrive(drive).DriveType & "<br/>"
document.write "File System: " & fso.GetDrive(drive).FileSystem &
"<br/>"
document.write "Spazio Disponibile: " &
fso.GetDrive(drive).AvailableSpace & "<br/>"
document.write "Spazio Libero: " & fso.GetDrive(drive).FreeSpace &
"<br/>"
document.write "É pronto: " & fso.GetDrive(drive).IsReady &
"<br/>"
document.write "Path: " & fso.GetDrive(drive).Path & "<br/>"
document.write "Cartella Principale: " &
fso.GetDrive(drive).RootFolder & "<br/>"
document.write "Numero Seriale: " &
fso.GetDrive(drive).SerialNumber & "<br/>"
document.write "Nome Condiviso: " &
fso.GetDrive(drive).ShareName & "<br/>"
document.write "Dimensione Totale: " & fso.GetDrive(drive).TotalSize
& "<br/>"
document.write "Nome del Volume: " &
fso.GetDrive(drive).VolumeName & "<br/>"
</script>
RISULTATO
Informazioni sull'Hard Disk
Lettera del Drive: C
Tipo: 2
File System: NTFS
Spazio Disponibile: 25441664000
Spazio Libero: 24415556000
É pronto: Vero
Path: C:
Cartella Principale: C:
Numero Seriale: 725365809
Nome Condiviso:
Dimensione Totale: 343597383680
Nome del Volume: DSk3
Bruno Pelosi
Programmare VBScript
Pag. 11
L'Oggetto Cartella
Proviamo ora a cancellare, spostare e copiare una cartella senza usare mai questo codice in una pagina web
per provocare danni.
PROPRIETÀ
Attributes attributi
DateCreated data e ora di creazione della cartella
DateLastAccessed data e ora dell'ultimo accesso
DateLastModifed data e ora dell'ultima modifica
Drive lettera del drive per la cartella
Files file della cartella
IsRootFolder True se è la cartella principale
Name imposta o restituisce il nome della cartella
ParentFolder restituisce un oggetto che punta alla
cartella superiore.
Path percorso della cartella
ShortName nome Dos della cartela
ShortPath nome Dos del percorso della cartella
Size dimensione di file e sottocartelle presenti nella
cartella corrente
Subfolder elenco di tutte le sottocartelle presenti nella
cartella corrente
Type descrizione della cartella corrente come stringa
METODI
Copy(destinazione,sovrascrittura) Copia la
cartella corrente in destinazione, sovrascivendola
se esistente con la proprietà sovrascrittura
impostata a True
Delete(force) Cancella la cartella corrente e i suoi
contenuti. Il parametro force= true elimina anche
quelle in sola lettura.
Move(destinazione) sposta la cartella corrente in
destinazione
CreateTextFile(percorso,overwrite,unicode)
crea un file di testo con il nome specificato in
percorso.
Overwrite=true cancella un file esistente,
unicode = true crea un file nel formato Unicode.
Esempio n. 1
CODICE
<script language="vbscript">
Dim Drive,folder, subfolder,elemFolder
Drive="C:"
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetDrive (Drive).RootFolder
Set subfolder = folder.Subfolders
Document.write "sottocartelle della cartella principale:<br>"
For each elemFolder in subfolder
document.write elemFolder & "<br>"
next
</script>
RISULTATO
Cartella principale e tutte le sue
sottocartelle.
Bruno Pelosi
Programmare VBScript
Pag. 12
Esempio n. 2
CODICE
RISULTATO
<script language="vbscript">
Dim Drive, folder, folderorigine, folderdestinazione
folderorigine="c:prova"
folderdestinazione="c:windows"
Set fso = CreateObject("Scripting.FileSystemObject")
set folder = fso.GetFolder (folderorigine)
folder.Copy folderdestinazione,true
document.write "La cartella " & folderorigine & " è stata copiata in "
& folderdestinazione & "."
</script>
Copiare una cartella.
(precedentemente creata in C: con il nome
prova)
Esempio n. 3
CODICE
<script language="vbscript" >
Dim Drive, folder, file, elemfile
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder ("c:")
Set file = folder.Files
document.write "I file nella cartella C: sono <br>"
For Each elemfile in file
document.write elemfile & "<BR>"
next
</script>
RISULTATO
File presenti nell'Hard Disk.
Bruno Pelosi
Programmare VBScript
Pag. 13
L'Oggetto File
L’oggetto file è utile per copiare, spostare e cancellare un file, per conoscere gli attributi e la dimensione di
un file, e per acquisire molte altre informazioni ancora.
L'oggetto file ha le seguenti Proprietà:
PROPRIETÀ
Attributes attributi di un file
DateCreated data e ora della creazione
DateLastAccessed data e ora dell'ultimo accesso
DateLastModifed data e ora dell'ultima modifica
Drive lettera del drive per il file
Name imposta o restituisce il nome del file
ParentFolder restituisce un oggetto che punta alla
cartella contenente il file.
Path percorso del file
ShortName nome Dos del file
ShortPath nome Dos del percorso del file
Size dimensione del file corrente
Type descrizione del file corrente come stringa
METODI
Simili a quelli dell’oggetto cartella
+
OpenAsTextStream(percorso,overwrite,unicode)
crea un file di testo con il nome specificato nel
parametro percorso.
overwrite = true cancella un file esistente,
unicode = true crea un file nel formato Unicode.
Esempio n. 1
CODICE
<script language="vbscript" >
Dim FilePath,OggettoFile
FilePath="c:autoexec.bat"
Set fso = CreateObject("Scripting.FileSystemObject")
set OggettoFile = fso.GetFile (FilePath)
document.write "Nome File " & OggettoFile.Name & “<br/>"
document.write "Drive " & OggettoFile.Drive & "<br/>"
document.write "Attributi " & OggettoFile.Attributes & "<br/>"
document.write "Cartella " & OggettoFile.ParentFolder & "<br/>"
document.write "Data Creazione " & OggettoFile.DateCreated & "<br/>"
document.write "Data Ultimo Accesso " & OggettoFile.DateLastAccessed &
"<br/>"
document.write "Data Ultima Modifica " & OggettoFile.DateLastModified &
"<br/>"
document.write "Dimensione " & OggettoFile.Size & " bytes<br/>"
document.write "Tipo " & OggettoFile.Type & "<br/>"
document.write "Percorso " & OggettoFile.Path & "<br/>"
document.write "Nome Dos " & OggettoFile.ShortName & "<br/>"
document.write "Percorso Dos " & OggettoFile.ShortPath & "<br/>"
</script>
RISULTATO
mostra le proprietà del file:
Nome File AUTOEXEC.BAT
Drive c:
Attributi 32
Cartella C:
Data Creazione 16/02/01 23.50.11
Data Ultimo Accesso 08/07/01
Data Ultima Modifica 28/04/01 22.51.06
Dimensione 202 bytes
Tipo File batch MS-DOS
Percorso C:AUTOEXEC.BAT
Nome Dos AUTOEXEC.BAT
Percorso Dos C:AUTOEXEC.BAT
Bruno Pelosi
Programmare VBScript
Pag. 14
Esempio n. 2
CODICE
<script language="vbscript">
Dim Drive, OggFile, origine, destinazione
origine="c:autoexec.bat"
destinazione="c:prova"
Set fso = CreateObject("Scripting.FileSystemObject")
set OggFile = fso.GetFile (origine)
OggFile.Copy destinazione,true
document.write "Il file " & origine & " è stato copiato in " &
destinazione & "."
</script>
RISULTATO
Copiare un file.
(bisogna prima creare una cartella
chiamata prova in C:)
Esempio n. 3
CODICE
<script language="vbscript" >
Dim OggFile, origine
origine="c:provaautoexec.bat"
Set fso = CreateObject("Scripting.FileSystemObject")
Set OggFile = fso.GetFile (origine)
OggFile.Delete
document.write "Il file " & origine & " è stato cancellato."
</script>
RISULTATO
Cancellare il file
Bruno Pelosi
Programmare VBScript
Pag. 15
L'Oggetto TextStream
L'oggetto TextStream consente di leggere e scrivere in un file di testo.
PROPRIETÀ
AtEndOfLine restituisce True se il puntatore del
file è alla fine di una riga di un file
AtEndOfStream restituisce True se il puntatore del
file è alla fine di un file
Column restituisce il numero di colonna del
carattere corrente
Line restituisce il numero di riga del carattere
corrente
METODI
Close chiude il file corrente
Read (numerocaratteri) legge il numero di caratteri
specificato da un file.
ReadAll legge tutti i caratteri di un file.
ReadLine legge una riga da un file.
Skip(numerocaratteri) salta il numero di caratteri
specificato da un file.
SkipLine salta alla riga successiva.
Write(stringa) scrive una stringa in un file.
WriteLine crea una nuova riga.
WriteBlankLines(numero) crea un numero
specificato di righe vuote.
Esempio n. 1
CODICE
<script language="vbscript">
Dim OggFile, origine, OggTextStream
origine="c:textstream.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile (origine)
Set OggFile = fso.GetFile (origine)
Set OggTextStream = OggFile.OpenAsTextStream(2)
OggTextStream.WriteLine "Lezione di VBScript
sull'oggetto TextStream"
OggTextStream.WriteLine
OggTextStream.WriteLine "Terza riga dell'esempio."
OggTextStream.close
document.write "Scrittura eseguita correttamente."
</script>
RISULTATO
scrivere in un file di testo
CreateTextFile crea il file di testo
OpenAsTextStream apre il file
Per aprire un file ci sono 3 modalità:
• Sola lettura 1
• Sola lettura 1
• Scrittura 2
• Scrittura in coda 8
Nell'esempio il file è stato aperto con il
parametro 2 cioè in scrittura.
Se il file esiste già, viene sovrascritto
Bruno Pelosi
Programmare VBScript
Pag. 16
Esempio n. 2
CODICE
<script language="vbscript" >
Dim OggFile, origine, OggTextStream, stringa
origine="c:textstream.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set OggFile = fso.GetFile (origine)
Set OggTextStream = OggFile.OpenAsTextStream(1)
RISULTATO
Leggere il file
Do While Not OggTextStream.AtEndOfStream
stringa = OggTextStream.ReadLine
document.write stringa & "<br>"
loop
OggTextStream.close
</script>
Bruno Pelosi
Programmare VBScript
Pag. 17
APPLICAZIONI LEGATE ALL’ OGGETTO TEXTSTREAM
Le applicazioni legate a questo oggetto sono tante, come quelle elencate appresso:
•
•
•
•
•
contatore: ad ogni accesso alla pagina si legge il valore nel file di testo, e lo si riscrive incrementato
di un'unità
statistiche: dove memorizzare la data e l'ora di accesso ad una pagina
file di configurazione
database per piccole applicazioni
forum che sfruttano 2 file di testo: uno per gli utenti ed uno per i messaggi.
Nella tabella si mostrano le prime due applicazioni:
CODICE
<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>
<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
RISULTATO
Funzionamento: ad ogni accesso alla pagina si
legge il valore nel file di testo, e lo si riscrive
incrementato di un'unità.
Contatore di accessi simili ai tanti
presenti nei siti internet
File di log
Set OggTextStream1 = OggFile.OpenAsTextStream(1)
Do While Not OggTextStream1.AtEndOfStream
stringa = OggTextStream1.ReadLine
document.write stringa & "<br>"
loop
OggTextStream1.Close
//-->
</SCRIPT>
Gli oggetti FileSystem eTextStream sono utilizzati maggiormente dal lato server.
Gestione dei file
Bruno Pelosi
Programmare VBScript
Pag. 18
Come già precisato prima per poter operare con questi esempi si dovrà creare una cartella prova nel drive C:
CODICE
<HTML>
<HEAD>
<TITLE>Esercizio</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE=vbscript>
<!-function copia()
Dim Drive, OggFile, origine, destinazione
origine="c:autoexec.bat"
destinazione="c:prova"
Set fso = CreateObject("Scripting.FileSystemObject")
set OggFile = fso.GetFile (origine)
OggFile.Copy destinazione,true
msgbox "Il file " & origine & " è stato copiato in " &
destinazione & "."
end function
//-->
</SCRIPT>
<input type=button value=Copia >
</BODY>
</HTML>
RISULTATO
Allo script associamo una
funzione richiamata da un bottone
(ogni volta che premiamo il pulsante
sovrascriviamo il file)
Bruno Pelosi
Programmare VBScript
CODICE
<HTML>
<HEAD>
<TITLE>Esercizio</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE=vbscript>
<!-function copia()
Dim Drive, OggFile, origine, destinazione
origine="c:autoexec.bat"
destinazione="c:prova"
Set fso = CreateObject("Scripting.FileSystemObject")
set OggFile = fso.GetFile (origine)
if fso.FileExists (destinazione & "autoexec.bat") then
MsgBox "Esiste già un file autioexec.bat nella cartella prova."
else
OggFile.Copy destinazione,true
MsgBox "Il file " & origine & " è stato copiato in " &
destinazione &
"." end if
end function
//-->
</SCRIPT>
<input type=button value=Copia >
</BODY>
</HTML>
Pag. 19
RISULTATO
verifica esistenza del file
Bruno Pelosi
Programmare VBScript
CODICE
<HTML>
<HEAD>
<TITLE>Esercizio</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE=vbscript>
<!-function copia()
Dim Drive, OggFile, origine, destinazione
origine="c:autoexec.bat"
destinazione="c:prova"
Set fso = CreateObject("Scripting.FileSystemObject")
set OggFile = fso.GetFile (origine)
if fso.FileExists (destinazione & "autoexec.bat") then
MsgBox "Esiste già un file autioexec.bat nella cartella prova."
else
OggFile.Copy destinazione,true
MsgBox "Il file " & origine & " è stato copiato in " &
destinazione &
"." end if
end function
Pag. 20
RISULTATO
Copiare un file
cancellare il file
spostare un file:
Lo spostamento di un file è uguale alla
copia,si usa il metodo Move al posto
del metodo Copy
function cancella()
Dim OggFile, origine
origine="c:provaautoexec.bat"
Set fso = CreateObject("Scripting.FileSystemObject")
Set OggFile = fso.GetFile (origine)
OggFile.Delete
MsgBox "Il file " & origine & " è stato cancellato."
end function
//-->
</SCRIPT>
<input type=button value=Copia >
<input type=button value=Cancella >
</BODY>
</HTML>
Bruno Pelosi
Programmare VBScript
Pag. 21
Le MsgBox
La finestra MsgBox è usata come output o per ricevere input.
aspetto: con loghi e con pulsanti di tipo SI/NO, oppure OK/CANCEL ecc..
Le MsgBox sono finestre di input quando restituiscono un valore dipendente dal pulsante premuto:
<SCRIPT LANGUAGE=vbscript >
puls=MsgBox("Fai una scelta",vbYesNo+vbQuestion)
if puls=vbYes then
MsgBox "Hai scelto SI",vbInformation
else
MsgBox "Hai scelto NO",vbInformation
end if<
</SCRIPT>
Le MsgBox sono finestre di output quando mostrano il valore di una elaborazione o semplicemente un
messaggio.
<SCRIPT LANGUAGE=vbscript >
MsgBox("Fai una scelta",vbYesNo+vbQuestion)
</SCRIPT>
Bruno Pelosi
Programmare VBScript
Pag. 22
ACCESSO AI CONTROLLI DEL FORM
Il VBScript accede a qualsiasi controllo del form usando la sintassi nomeform.nomecontrollo, esso può
leggerne e modificarne gli attributi usando “il punto” (.) proprio come nel normale Visual Basic.
Controllo dei text
Controllo dei checkbox
Generazione di function e
HTML
<FORM NAME="maschera">
<INPUT TYPE="Text" NAME="casella" VALUE="">
</FORM>
<SCRIPT LANGUAGE="VBSCRIPT">
maschera.casella.value = "inserisci un nome"
</SCRIPT>
<FORM NAME="maschera">
<INPUT TYPE=Text NAME="casella" VALUE=""><BR>
<INPUT TYPE=Radio NAME="maiusc" CHECKED>Uppercase<BR>
<INPUT TYPE=Radio NAME="minusc">Lowercase<P>
<INPUT TYPE=SUBMIT NAME="Trasforma" VALUE="Trasforma">
</FORM>
<SCRIPT LANGUAGE="VBScript">
Sub vai_Onclick()
If maschera.maiusc.Item(0).Checked Then
maschera.casella.Value = UCase(maschera.casella.Value)
Else
maschera.casella.Value = LCase(maschera.casella.Value)
End If
End Sub
</SCRIPT>
<FORM NAME="Tabella">
Righe <INPUT TYPE=Text NAME="Righe" VALUE="">
Colonne <INPUT TYPE=Text NAME="Colonne" VALUE=""><BR>
<INPUT TYPE=submit NAME="crea" VALUE="Crea tabella">
</FORM>
<SCRIPT LANGUAGE="VBScript">
Sub crea_onclick()
Dim riga, colonna
' memorizziamo i valori dei textboxes altrimenti andrebbero perduti
riga = Tabella.Righe.Value
colonna = Tabella.Colonne.Value
Document.Open
Document.Write "<H1>Creazione di un tabella</H1>"
Document.Write "<TABLE BORDER=1>"
For r = 1 to riga
Document.Write "<TR>"
For c = 1 to colonna
Document.Write "<TD> " & “ * “ & " </TD>"
Next
Document.Write "</TR>"
Next
Document.Write "</TABLE>"
End Sub
</SCRIPT>
Riepilogo degli eventi
Bruno Pelosi
Programmare VBScript
Pag. 23
• Tastiera: includono onkeypress, onkeydown e onkeyup,keycode AltKey, CtrlKey e ShiftKey .
• Mouse: onclick, ondblclick, onmousedown,onmouseup e onmousemove. Onmouseover, onmouseout
All’interno di un evento di mouse è possibile interrogare la proprietà event.button per determinare quale
pulsante è stato premuto e si possono usare le proprietà fromElement e toElement dell’oggetto event per
vedere quale elemento è stato attivato o abbandonato.
• onfocus e onblur sono simili agli eventi GotFocus e LostFocus di Visual Basic ma essi si attivano
anche quando il focus passa a un’altra finestra o applicazione.
• onchange è simile al corrispondente evento di Visual Basic ma si attiva solo quando il focus lascia
il controllo.
• onselectstart si attiva quando l’utente fa clic sulla pagina e inizia a selezionare una parte di testo o
altri elementi; quando il mouse si muove e l’area selezionata cambia di conseguenza, viene attivato
un evento onselect.
• ondragstart si attiva quando inizia un’operazione di drag-anddrop: intercettando questo evento
potete annullare la sua azione di default, che consiste nel copiare il testo selezionato in un’altra
posizione.
EVENTI GLOBALI CHE SI RIFERISCONO ALL’INTERA PAGINA
•
•
•
•
•
•
•
•
•
onreadystatechange si attiva quando cambia lo stato della pagina (per esempio quando lo
scaricamento è completato e la pagina sta per diventare interattiva).
onresize si attiva quando la pagina viene dimensionata.
onunload e onbeforeunload simili a Unload e QueryUnload di Visual Basic e si attivano quando la
pagina sta per essere scaricata perché l’utente sta passando a un’altra pagina o sta chiudendo il
browser.
onscroll si attiva quando l’utente scorre il documento (o un elemento della pagina).
onhelp si attiva quando l’utente preme il tasto F1.
onerror si attiva quando si verifica un errore di script o quando lo scaricamento di un elemento della
pagina fallisce (per esempio lo scaricamento di un’immagine).
onabort (l’utente fa clic sul pulsante Stop sulla barra degli strumenti del browser)
onreset (l’utente fa clic sul pulsante di ripristino)
onsubmit (l’utente fa clic sul pulsante di invio).
Bruno Pelosi

Documenti analoghi

Appunti di VBScript

Appunti di VBScript Dim drive drive="C:" Set fso = CreateObject("Scripting.FileSystemObject") document.write "Informazioni sull'Hard Disk
" document.write "Lettera del Drive: " & fso.GetDrive(drive).DriveLetter & "...

Dettagli

I linguaggi del Web

I linguaggi del Web del VBScript lato client è la possibilità di creare script che interagiscono con i fogli di stile CSS. La differenza sostanziale tra JavaScript e VBScript sta nel fatto che mentre il primo è un rea...

Dettagli