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
Dim drive
drive="C:"
Set fso = CreateObject("Scripting.FileSystemObject")
document.write "Informazioni sull'Hard Disk
"
document.write "Lettera del Drive: " & fso.GetDrive(drive).DriveLetter & "...
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...