Lorenzo Pascucci
a- a+

Leggere i file

Spesso ci capita di leggere dati memorizzati in file di testo e visualizzarli in una pagina asp. 

L'operazione è molto semplice.

Prima di tutto dovremo aprire il file, in questo modo:

strPath = Server.Mappath("file.txt")
Set objFileSy = Server.CreateObject("Scripting.FileSystemObject")
Set objApriFile = objFileSy.OpenTextFile(strPath, 1)

Poi utilizziamo uno o più metodi (sono in tutto 3) forniteci dall'oggetto Text Stream

Read(n) Restituisce i primi n caratteri della riga corrispondente
ReadLine Restituisce tutti i caratteri della riga corrispondente
ReadAll Restituisce tutti i caratteri di tutto il file

Quindi per visualizzare i primi 5 caratteri della prima riga, basta digitare:

Response.Write objApriFile.Read(5)

mentre per visualizzare tutta la riga:

Response.Write objApriFile.ReadLine

infine per visualizzare tutto il documento:

Response.Write objApriFile.ReadAll

Come è facile comprendere spesso non si conosce il numero 
effettivo di righe all'interno di un file... quindi utilizzare semplice ReadLine non basta e utilizzare ReadAll, invece, provoca un grande spreco di memoria... ReadLine non basta in quanto se prova a leggere una riga che non esiste provoca un errore... questo capita se prevediamo di leggere le prime 10 righe di un file, quando in realtà ce ne sono appena 9.

Quindi utilizziamo un'altra proprietà dell'oggetto Text Stream: AtEndOfStream
Come valori ha True e False (vero e falso), true quando si trova 
alla fine del file.
Quindi con un Do While Not .... possiamo leggere tutto il file, riga per riga, sicuri di non provocare errori... la sintassi completa:

Do While Not objApriFile.AdEndofStream
Response.Write objApriFile.ReadLine
Loop

Quindi la sintassi per leggere un file di testo è la seguente:

strPath = Server.Mappath("file.txt")
Set objFileSy = Server.CreateObject("Scripting.FileSystemObject")
Set objApriFile = objFileSy.OpenTextFile(strPath, 1)
Do While Not objApriFile.AdEndofStream
Response.Write objApriFile.ReadLine
Loop
objApriFile.close
Set objApriFile = Nothing
Set objFileSy = Nothing 



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Redazione
Condividi le tue opinioni su questo articolo!