Dovreste ormai sapere che ColdFusion Ha la possibilità di leggere i file utilizzando il Tag <CFFILE>. Per esempio, se evete un file di nome filedaleggere.txt nella cartella ‘c:\docs\’, potete farglielo leggere a ColdFusion in questo modo:
<!-- CF legge il file --> <CFFILE ACTION="Read" FILE="c:\starwars\jarjarmustdie.txt" VARIABLE="file_content">
ColdFusion Legge il file e assegna il suo contenuto alla variabile chiamata #file_content#.
Per visualizzarne il contenuto in una pagina web, dopo aver letto il file dovreste semplicemente utilizzare:
<!-- Per visualizzare il file su schermo --> <CFOUTPUT> #file_content# </CFOUTPUT>
Cercheremo ora di assicurarci che CF riconosca gli a capo del file originale, e visualizzi soltanto delle linee specifiche del file, diciamo le righe da 10 a 200
Per fare questo, avremo bisogno dell’aiuto degli array (vettori) e del tag <CFLOOP> se non conoscete uno di questi od entrambi vi raccomando il sito ufficiale dell’allaire, purtroppo è in inglese, cercherò prossimamente di tradurre alcuni tag in modo che siano consultabili dal sito etechs.it. Dateci comunque un’occhiata: Allaire documentation
Il codice ASCII 10 significa “nuova riga” detto CR (Carriedge Return) ed anche se noi non lo vediamo scritto sul file, esso esiste, il riferimento a quel carattere in CF si fa così:
#Chr(10)#
Considerando che #file_content# è una lista (tipo di variabile in CF) e il suo delimitatore è #char10#, saremo in grado di separare ogni linea del file e di visualizzarlo quindi nel giusto modo utilizzanto il tag <CFLOOP>
<!-- Visualizzazione riga per riga --> <CFLOOP List="#file_content#" Index="rc" Delimiters="#Chr(10)#"> <CFOUTPUT> #rc#<BR> </CFOUTPUT> </CFLOOP>
A questo punto inseriamo ogni elemento linea individuato in un array chiamato ‘file_array’. Trasformando così la variabile saremo in grado di individuare direttamente una linea chiamando le variabili vettore, esempio la prima, la terza e la quinta: #file_array[1]#, #file_array[3]# and #file_array[5]#.
<!-- Ogni riga diventa un elemento dell'array --> <CFSET file_array = ArrayNew(1)> <CFLOOP List="#file_content#" Index="rc" Delimiters="#Chr(10)#"> <CFSET rc = ArrayAppend(file_array, rc)> </CFLOOP> <!-- possiamo quindi visualizzarle singolarmente --> <CFOUTPUT> Line 1: #file_array[1]#<BR> Line 3: #file_array[3]#<BR> Line 5: #file_array[5]# </CFOUTPUT>
Infine per visualizzare le linee da 10 a 200 basterà utilizzare un semplcie loop:
<!-- CF legge il file --> <CFFILE ACTION="Read" FILE="c:\starwars\jarjarmustdie.txt" VARIABLE="file_content"> <!-- Ogni riga diventa un elemento dell'array --> <CFSET file_array = ArrayNew(1)> <CFLOOP List="#file_content#" Index="rc" Delimiters="#Chr(10)#"> <CFSET rc = ArrayAppend(file_array, rc)> </CFLOOP> <!-- per visualizzare le righe dalla 10 all 200 utilizzando CFLOOP --> <CFLOOP INDEX="loopcount" FROM="10" TO="200"> <CFOUTPUT> #file_array[loopcount]#<BR> </CFOUTPUT> </CFLOOP>
Congratulazioni avete imparato a visualizzare le singole linee di un file di testo
Comments are closed.