Pagine ASP parte 2 La gestione dei file

20
Pagine ASP parte 2 La gestione dei file Stefano Schacherl Stefano Schacherl

description

Pagine ASP parte 2 La gestione dei file. Stefano Schacherl. Esempio: un contatore di accessi. L'utilizzo delle pagine ASP è quasi sempre basato sulla gestione dei File e dei DataBase . Prima di vederne in dettaglio le caratteristiche proviamo a realizzare un tipico esempio di applicazione, - PowerPoint PPT Presentation

Transcript of Pagine ASP parte 2 La gestione dei file

Page 1: Pagine ASP parte 2 La gestione dei file

Pagine ASPparte 2

La gestione dei file

Stefano SchacherlStefano Schacherl

Page 2: Pagine ASP parte 2 La gestione dei file

2 Esempio: un contatore di accessi

L'utilizzo delle pagine ASP è quasi sempre basato sulla gestione dei File e dei DataBase.

Prima di vederne in dettaglio le caratteristiche proviamo a realizzare un tipico esempio di applicazione,

un contatore di accessi.

Questo primo esempio si baserà su tre file:

• un file BENVENUTO.ASP (la pagina base)

• un file CONTATORE.INC (una pagina da includere che contiene Jscript)

• un file CONTEGGIO.TXT (contiene il numero di visitatori)

Page 3: Pagine ASP parte 2 La gestione dei file

3 Esempio: un contatore di accessi

Il file benvenuto.asp è la pagina che verrà richiamata dal client:

<%@ LANGUAGE = JScript %><html><head><title>Benvenuto!</title></head><body><center><h1>Benvenuto nel mio sito!</h1>Sei il visitatore numero<b><!--#include file="contatore.inc"--></b></body></html>

In questa pagina c'è solo html, ma prevede l'inclusione di un file (contatore.inc) che contiene Jscript.

Page 4: Pagine ASP parte 2 La gestione dei file

4 Esempio: un contatore di accessi

Il file contatore.inc è quello che contiene tutto lo script:<%var n_file = Server.MapPath("conteggio.txt");var fobj = new ActiveXObject("Scripting.FileSystemObject");var file_in = fobj.OpenTextFile(n_file);var stringa = file_in.ReadLine();file_in.Close();var intero = parseInt(stringa);intero++;var file_out = fobj.CreateTextFile(n_file);file_out.WriteLine(intero);file_out.Close();Response.Write(intero);%>

Page 5: Pagine ASP parte 2 La gestione dei file

5 Esempio: un contatore di accessi

Commenti:

• il metodo MapPath dell'oggetto Server fornisce una

stringa con il nome (completo di path) del file • ActiveXObject("Scripting.FileSystemObject") crea un

oggetto ActiveX per la gestione dei file• con OpenTextFile si apre il file• con ReadLine() si legge una riga del file• con Close() viene chiuso il file file_in • con CreateTextFile si crea un nuovo file (stesso nome)• con WriteLine si scrive una riga nel file

Il file conteggio.txt deve contenere inizialmente il valore 0

e verrà automaticamente aggiornato.

Page 6: Pagine ASP parte 2 La gestione dei file

6 ESERCITAZIONE

Realizzare e provare il contatore di accessi.

Page 7: Pagine ASP parte 2 La gestione dei file

7 Gli oggetti ActiveX

L'istruzione var fobj = new ActiveXObject("Scripting.FileSystemObject");è un esempio di come JScript riesce ad utilizzare gli oggetti ActiveX forniti dal server.

La sintassi è quindi la seguente:var nomevar=new ActiveXObject("nomeserver.nometipo");una volta creato l'oggetto nomevar in JScript, è possibile utilizzarne proprietà e metodi:

nomevar.proprietànomevar.metodo(parametri)

L'oggetto ActiveX più utilizzato è proprio Scripting.FileSystemObject

che consente di interagire con il File System del server.

Page 8: Pagine ASP parte 2 La gestione dei file

8 Scripting.FileSystemObject

I metodi di Scripting.FileSystemObject sono numerosi, tra questi:

DriveExists (Restituisce un booleano che indica se il drive specificato esiste)GetDrive (Restituisce un oggetto Drive relativo all'unità di un percorso specificato) GetDriveName (Restituisce una stringa contenente il nome dell'unità di un percorso specificato)

Page 9: Pagine ASP parte 2 La gestione dei file

9 Scripting.FileSystemObject

CopyFolder (Copia una cartella da una posizione ad un'altra)CreateFolder (Genera una nuova cartella)DeleteFolder (Cancella una cartella) MoveFolder (Sposta una cartella)GetFolder (Restituisce un oggetto Folder relativo al percorso specificato) FolderExists (Restituisce un booleano che indica se la cartella specificata esiste)

Page 10: Pagine ASP parte 2 La gestione dei file

10 Scripting.FileSystemObject

CopyFile (Copia uno o più file da una posizione ad un'altra)DeleteFile (Cancella un file)FileExists (Restituisce un booleano che indica se il file specificato esiste)MoveFile (Sposta uno o più file)CreateTextFile (Crea un file di testo e restituisce un oggetto TextStream utile per lavorare con il file creato)GetFile (Restituisce un oggetto File relativo al percorso specificato)OpenTextFile (Apre il file specificato e restituisce un oggetto TextStream che può essere utilizzato per leggere il file, scrivere nel file o aggiungere testo alla fine del file)

Page 11: Pagine ASP parte 2 La gestione dei file

11 Scripting.FileSystemObject

CreateTextFile e OpenTextFile sono i metodi più importanti per la gestione dei file di testo, in quanto restituiscono un oggetto di tipo TextStream, che consente la gestione sequenziale di un file di testo; la sintassi di OpenTextFile è la seguente:nvar = nogg.OpenTextFile(nfile[,modoIO[,crea[,form]]]);

nogg = nome assegnato al new ActiveXObjectnfile = nome (completo di path) del filemodoIO = 1 (ForReading), 2 (ForWriting), 8 (ForAppending)crea = True / False (se non esiste lo crea o no)form = TristateTrue (Unicode) TristateFalse (ASCII) TristateUseDefault (predefinita)

Page 12: Pagine ASP parte 2 La gestione dei file

12 Scripting.FileSystemObject

La sintassi di CreateTextFile è la seguente:nvar = nogg.CreateTextFile(nfile[,sovrascr[,unicode]]);

nogg = nome assegnato al new ActiveXObjectnfile = nome (completo di path) del filesovrascr = True / False (se esiste lo sovrascrive o no)unicode = True / False (formato Unicode o ASCII)

Page 13: Pagine ASP parte 2 La gestione dei file

13 Scripting.FileSystemObject

OpenTextFile e CreateTextFile resituiscono un oggetto di tipo TextStream che possiede i seguenti metodi:

Close (Chiude il file)Read (Accetta un parametro intero n, legge e restituisce quindi n caratteri dal file di testo)ReadAll (Legge l'intero contenuto del file e lo restituisce come stringa)ReadLine (Legge un'intera riga del file fino al carattere di "nuova riga" escluso e la restituisce come stringa)Skip (Accetta un parametro intero n, durante la lettura di un file salta n caratteri e posiziona lo stream sul carattere immediatamente successivo all'ultimo ignorato)SkipLine (Salta ed ignora un'intera riga del file)...

Page 14: Pagine ASP parte 2 La gestione dei file

14 Scripting.FileSystemObject

Write (Accetta un parametro intero str, scrive quindi il contenuto di str all'interno del file)WriteBlankLines (Accetta un parametro intero n, scrive quindi nel file n righe vuote)WriteLine (Accetta un parametro intero str, scrive quindi il contenuto di str all'interno del file e lo fa seguire da un carattere di "nuova riga")

Page 15: Pagine ASP parte 2 La gestione dei file

15 Scripting.FileSystemObject

Proprietà:AtEndOfLine (True se il puntatore dello stream è posizionato immediatamente prima dell'indicatore di fine di riga, restituisce false in caso contrario )AtEndOfStream (True se il puntatore dello stream è posizionato immediatamente prima dell'indicatore di fine file, restituisce false in caso contrario)Column (Restituisce il numero di colonna della posizione di carattere corrente del file)Line (Restituisce il numero di linea della posizione di carattere corrente del file)

Page 16: Pagine ASP parte 2 La gestione dei file

16 Il metodo Server.MapPath

L'oggetto built-in Server possiede alcuni metodi e proprietà importanti; per ora ne vediamo solo uno, il metodo MapPath, che serve per la gestione dei file.

Abbiamo visto che il riferimento ai file deve avere il percorso assoluto; per evitare di dover scrivere l'intero percorso (con gravi problemi di portabilità, tra l'altro) si può usare questo metodo che restituisce una stringa con il percorso assoluto di un file o cartella.

Quindi, ad esempio:

nfile = Server.MapPath("file.txt")

Page 17: Pagine ASP parte 2 La gestione dei file

17 Esempi

Vediamo alcuni esempi di istruzioni per la gestione dei file; per creare un file di testo con una prova di scrittura:

var fso = new ActiveXObject("Scripting.FileSystemObject");var text_stream = fso.CreateTextFile(Server.MapPath("prova.txt"));text_stream.WriteLine("Prova di scrittura su file di testo");text_stream.Close();

Page 18: Pagine ASP parte 2 La gestione dei file

18 Esempi

Per aprire in lettura un file di testo esistente:

var fso = new ActiveXObject("Scripting.FileSystemObject");var text-file = fso.OpenTextFile(Server.MapPath("prova.txt"));

Per leggerne una singola riga:

riga = text-file.ReadLine();

Per controllare se il file è finito:

while(!text-file.AtEndOfStream) { … }

Page 19: Pagine ASP parte 2 La gestione dei file

19 ESERCITAZIONE/1

Realizzare una pagina ASP che crei un file di testo.

Realizzare una pagina ASP che legga un file di testo e lo visualizzi.

Realizzare una pagina ASP che crei un file di testo sulla base dei dati immessi da un modulo. (Utilizzare il programma di lettura per visualizzarne il contenuto)

Realizzare una pagina ASP che aggiunga ad un file di testo (inizialmente vuoto) i dati immessi da un modulo. (Utilizzare il programma di lettura per visualizzarne il contenuto)

Page 20: Pagine ASP parte 2 La gestione dei file

20 ESERCITAZIONE/2

Progetti proposti:

GUESTBOOK

FORUM

SONDAGGIO

GESTIONE PASSWORD UTENTI

RUBRICA TELEFONICA / E-MAIL

TEST a risposta multipla (con memorizzazione e visualizzazione punteggi)