Foros del Web » Programando para Internet » ASP Clásico »

Importar ficheros txt

Estas en el tema de Importar ficheros txt en el foro de ASP Clásico en Foros del Web. Buenos días a todos que tal? La duda q tengo es como importar un fichero txt ( contiene lista de direcciones exportada desde el outlook) ...
  #1 (permalink)  
Antiguo 19/07/2002, 04:11
 
Fecha de Ingreso: enero-2002
Mensajes: 34
Antigüedad: 22 años, 4 meses
Puntos: 0
Importar ficheros txt

Buenos días a todos que tal?

La duda q tengo es como importar un fichero txt ( contiene lista de direcciones exportada desde el outlook) e introducir los datos a su tabla correspondiente.

Alguien sabe q objeto y metodos tengo q usar exactamente??

Gracias
Y buen fin de semana
  #2 (permalink)  
Antiguo 19/07/2002, 09:34
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Re: Importar ficheros txt

Tenés que usar filesystemobject para leer cada línea del archivo (una línea a la vez), meter los datos en variables mediante un split a la cadena (supongo que estarán delimitados de alguna manera... comas, tabulaciones, lo que sea), hacer un insert a la BD y volver a comenzar con la siguiente línea..

sería mas o menos así:

1- instanciar el filesystemobject
2- crear conexión a BD
3- mientras no sea fin de archivo de texto
4- leer primer línea y metarla en una variable
5- separar la cadena anterior con split
6- construir la SQL de insert con las cadenas ya separadas en variables y ejecutarla
7- si el archivo no llegó a su fin volver a '4' leyendo la línea siguiente... si llegó al final:
8- cerrar y destruir los objetos del FSO y las conexiones a la BD
  #3 (permalink)  
Antiguo 19/07/2002, 16:07
Avatar de Juansan  
Fecha de Ingreso: abril-2001
Mensajes: 203
Antigüedad: 23 años, 1 mes
Puntos: 0
Re: Importar ficheros txt

<%@ Language=VBScript %>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open "Provider=SQLOLEDB; Data Source=soft; Initial Catalog=tnaranja; User Id=servicios; Password=servicios2002;"
Set Rs = Server.CreateObject("ADODB.Recordset")
cantarchivos=0 ' cantidad de archivos encontrados en la carpeta
cantregistros=0 ' cantidad de registros totales.
cantnoimportados=0 ' cantidad de registros no importados dado que van a ION o BUE
canterror=0
noexist=0
fecha=date()
set Fso = Server.CreateObject("Scripting.FileSystemObje ct")
If not (fso.FileExists(Server.MapPath("\XXXXXX\tar.t xt"))) Then
cantarchivos = 0
Else
cantarchivos = 1
set archivo= fso.Getfile(Server.MapPath("\XXXXXX\tar.txt&q uot;))

'set CarpetaOrigen = fso.GetFolder (Server.MapPath("\xxxx"))'carpeta de donde buscar los archivos
'set archivos = CarpetaOrigen.files 'obtengo los archivos que estan en esa carpeta

Response.Write ("Descripcion de archivos importados")&"<BR>"

'for each archivo in archivos ' por cada archivo(variable)en el set anterior
nombrearchivo=archivo.name ' nombre de cada archivo
response.write ("Nombre Archivo:  ") & nombrearchivo &"<br>" ' muestro el nombre del archivo
set archivo=archivo.openastextstream(1) ' abro el archivo para lectura

Do While archivo.AtEndOfStream <> True ' hago mientras fin del archivo sea falso
linea= archivo.ReadLine ' Leo la primera linea (cuando pase por el loop mostrara la segunda)
response.write linea &"<br>" ' la muestro
nombre=mid(linea,24,40)
domi = mid(linea,64,40)
loca=mid(linea,104,40)
cod = mid(linea,145,4)
pieza = mid(linea,155,8)

campo1=mid(linea,1,154)
pieza1=mid(linea,155,8)
campo2=mid(linea,163,18)
marca=mid(linea,181,1)
motivo=mid(linea,182,2)
campo3=mid(linea,184,48)
'Agrego los registros a base
Continua...

  #4 (permalink)  
Antiguo 19/07/2002, 16:10
Avatar de Juansan  
Fecha de Ingreso: abril-2001
Mensajes: 203
Antigüedad: 23 años, 1 mes
Puntos: 0
Re: Importar ficheros txt

Sql1 = "Insert into base("
Sql1 = Sql1 & "campo1,pieza,campo2,marca,motivo) values("
Sql1 = Sql1 & " '" & campo1& "',"
Sql1 = Sql1 & " '" & pieza1& "',"
Sql1 = Sql1 & " '" & campo2& "',"
Sql1 = Sql1 & " '" & marca& "',"
Sql1 = Sql1 & " '" & motivo& "')"
'Sql1 = Sql1 & " '" & campo3 & "')"
on error resume next
Conn.Execute Sql1 , registros

Sql = "Insert into envioca("
Sql = Sql & "pieza,ayn,calle,localidad,cod_post) values("
Sql = Sql & " '" & pieza& "',"
Sql = Sql & " '" & nombre& "',"
Sql = Sql & " '" & domi& "',"
Sql = Sql & " '" & loca& "',"
Sql = Sql & " '" & cod & "')"

On error resume next

Conn.Execute Sql , registros


elerror = CStr(Err.Number)
if elerror = "-2147467259" then
canterror=canterror+1
end if
cantregistros=cantregistros+1
'else
'end if
'end if
cantnoimportados=cantnoimportados+1

Loop

archivo.Close'cierro el archivo
cantarchivos=cantarchivos+1

Set amover = fso.GetFile (Server.MapPath("\XXXXXX"&chr(47)&am p; nombrearchivo))
amover.Move (Server.MapPath("\XXXXXX\importados"&amp ;chr(47)& nombrearchivo&day(date())&month(date())&am p;year(date())))
end if
'next

set archivo = nothing
set CarpetaOrigen = nothing
set archivos = nothing
set amover = nothing
set fso = nothing
%>
<html>
<!-- creation date: 20/03/2001 -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>IMPORTAR</title>
<meta name="Description" content="">
<meta name="Keywords" content="">
<meta name="Author" content="juansan">

</head>
<body>
<%
if cantarchivos=0 then
Response.Write ("No hay Archivos a Importar"&"<br>")
Response.Write date()&" "& time()
else
Response.Write ("Registros importados = "&cantregistros-canterror&"<br>")
end if
Response.Write "<br><br><input type='button' onclick='document.location=" & chr(34) & "admmenu.asp" & chr(34) & "' value='<< Regresar al inicio' >"
%>
</body>
</html>
Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:13.