Ver Mensaje Individual
  #11 (permalink)  
Antiguo 17/10/2004, 16:47
Avatar de Bravenap
Bravenap
 
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
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.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!