FSO

30/10/2003 - 01:35 por Jimy | Informe spam
Tengo que leer información que viene en un fichero de texto para
incorporarla a una BD.
El número de columnas es siempre el mismo, pero la longitud de cada una es
variable y están separadas por tabulación. También puede que una columna
esté vacía, por lo que habría dos tabulaciones seguidas.
También es variable el número de filas y están separadas por salto de línea,
retorno de carro. Por ejemplo

1 F5465464 CALZADOS UNIVERSAL, S.L. 654654 955995 25
1 A65455 REUNIONES, C.B. 545412 7704477 33
...

No sé muy bien cómo tratar la lectura del fichero para ir asignando las
columnas a variables para luego grabar la BD.
Caracter a caracter hasta encontrar la tabulación parece un método un poco
"basto".
Alguien tiene alguna idea o algo de código que ya haya hecho?

Salu2

Preguntas similare

Leer las respuestas

#1 Gio
30/10/2003 - 02:24 | Informe spam
Revisate este codigo

'ABRE EL ARCHIVO A PROCESAR'
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.OpenTextFile(PATH & "codigoreferencial.txt")

'ABRE CONEXION
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open CONNECTIONSTRING

'ITERA SOBRE LAS LINEAS DEL ARCHIVO
Do While Not a.AtEndOfStream
strRespuesta = a.ReadLine

'GUARDA LOS CAMPOS DE LA LINEA EN UN ARREGLO'
arrCamposLinea = Split(strRespuesta ,Chr(9), -1, 1)

idqqq = arrCamposLinea(0)
idsss = arrCamposLinea(1)
idmaterial = arrCamposLinea(2)
cantidad = arrCamposLinea(3)
idproducto = arrCamposLinea(4)
idvariant = 1

'INSERTA CODIGO
strsql = "INSERT INTO CODIGOREFERENCIAL (IDPRODUCTO, IDMATERIALBASICO,
IDUNIDADPRODUCTO, IDUNIDADMATERIALBASICO, CANTIDAD, IDQQQ, IDSSS) VALUES
("&idproducto&", "&idmaterial&", 12, 6, "&cantidad&", "&idqqq&", "&idsss&")"
conn.execute(strsql)
Loop
Respuesta Responder a este mensaje
#2 Jimy
31/10/2003 - 00:41 | Informe spam
Muchas gracias. La clave está en la función split. Me tengo que dar un tirón
de orejas por no haberlo revisado.
Otra pregunta:
¿Se puede desde el servidor que ejecuta el código leer directamente un
fichero que está en el cliente?
Me parece que no se puede pero no estoy seguro. Es para evitar hacer la
subida del fichero al servidor.

Salu2

"Gio" escribió en el mensaje
news:
Revisate este codigo

'ABRE EL ARCHIVO A PROCESAR'
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.OpenTextFile(PATH & "codigoreferencial.txt")

'ABRE CONEXION
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open CONNECTIONSTRING

'ITERA SOBRE LAS LINEAS DEL ARCHIVO
Do While Not a.AtEndOfStream
strRespuesta = a.ReadLine

'GUARDA LOS CAMPOS DE LA LINEA EN UN ARREGLO'
arrCamposLinea = Split(strRespuesta ,Chr(9), -1, 1)

idqqq = arrCamposLinea(0)
idsss = arrCamposLinea(1)
idmaterial = arrCamposLinea(2)
cantidad = arrCamposLinea(3)
idproducto = arrCamposLinea(4)
idvariant = 1

'INSERTA CODIGO
strsql = "INSERT INTO CODIGOREFERENCIAL (IDPRODUCTO,


IDMATERIALBASICO,
IDUNIDADPRODUCTO, IDUNIDADMATERIALBASICO, CANTIDAD, IDQQQ, IDSSS) VALUES
("&idproducto&", "&idmaterial&", 12, 6, "&cantidad&", "&idqqq&",


"&idsss&")"
conn.execute(strsql)
Loop


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida