Presentar un texto tabulado en una tabla
A veces, se tienen ciertos archivos de texto que funcionan como una base de datos: cada línea es un registro y los campos están separados por un tabulador.
Esta es una subrutina para poder presentar en una tabla esos datos y que sea más fácil su lectura. La acabo de hacer y funciona, aunque claro está, es muy depurable y adaptable.
La subrutina es la siguiente:
Código:
Sub tabularTexto(archivo)
Dim objFSO
Dim objTextStream
Dim registro()
Dim numCampos,numRegistros
Dim campo
Dim i,n
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(archivo) Then
Set objTextStream = objFSO.OpenTextFile(archivo, 1) 'Método 1: "sólo lectura"
i=0
Do while not objTextStream.AtEndOfStream
Redim Preserve registro(i)
registro(i) = objTextStream.ReadLine
i = i + 1
Loop
numCampos = Ubound(Split(registro(0),Chr(9)))+1
numRegistros = i
Response.Write("<table border=1>")
Response.Write("<tr>")
For n=0 to numCampos-1
Response.Write("<th>Campo " & n & "</th>")
Next
Response.Write("</tr>")
For i=0 to Ubound(registro)
Response.Write("<tr>")
campo = Split(registro(i),Chr(9))
For n=0 to numCampos-1
Response.Write("<td>")
Response.Write(campo(n))
Response.Write("</td>")
Next
Response.Write("</tr>")
Next
Response.Write("</table>")
Response.Write("Campos: " & numCampos & "<br>Registros: " & i)
Else
Response.Write("No existe el archivo " & archivo)
End If
End Sub
Se le pasa la ruta completa del archivo a leer, por ejemplo:
tabularTexto(Server.MapPath("ejemplo.txt"))
y el contenido de ejemplo.txt es algo así:
Código:
campoA1 campoA2
campoB1 campoB2
Si en lugar de tabuladores tenemos, por ejemplo, puntos y comas (;) no hay más que cambiar esta línea:
Código:
campo = Split(registro(i),";")
Un saludo.