Lorenzo Pascucci
a- a+

Leggere i file

Spesso ci capita di leggere dati memorizzati in file di testoe 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 rigacorrispondente
ReadLine Restituisce tutti i caratteri della rigacorrispondente
ReadAll Restituisce tutti i caratteri di tutto il file

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

Response.Write objApriFile.Read(5)

mentre pervisualizzare tutta la riga:

Response.Write objApriFile.ReadLine

infine per visualizzare tutto il documento:

Response.Write objApriFile.ReadAll

Come è facile comprendere spesso non si conosce ilnumero 
effettivo di righe all'interno di un file... quindiutilizzare semplice ReadLine non basta e utilizzare ReadAll,invece, provoca un grande spreco di memoria... ReadLine nonbasta in quanto se prova a leggere una riga che non esisteprovoca un errore... questo capita se prevediamo di leggerele prime 10 righe di un file, quando in realtà ce nesono appena 9.

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

Do While Not objApriFile.AdEndofStreamResponse.Write objApriFile.ReadLineLoop

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

strPath = Server.Mappath("file.txt")Set objFileSy = Server.CreateObject("Scripting.FileSystemObject")Set objApriFile = objFileSy.OpenTextFile(strPath, 1)Do While Not objApriFile.AdEndofStreamResponse.Write objApriFile.ReadLineLoopobjApriFile.closeSet objApriFile = NothingSet objFileSy = Nothing 



Ti potrebbe interessare anche

commenta la notizia