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

Problema con split doble (ahi si...)

Estas en el tema de Problema con split doble (ahi si...) en el foro de ASP Clásico en Foros del Web. Bueno tengo k hacer lo siguiente: tengo k generar una tabla nueva y llenarla con la info de un archivo de texto el cual puede ...
  #1 (permalink)  
Antiguo 25/01/2006, 07:38
 
Fecha de Ingreso: noviembre-2004
Mensajes: 371
Antigüedad: 19 años, 7 meses
Puntos: 0
Problema con split doble (ahi si...)

Bueno tengo k hacer lo siguiente: tengo k generar una tabla nueva y llenarla con la info de un archivo de texto el cual puede venir tabulado, con coma, punto y como, etc. Desde el formulario yo le digo al usuario que escoja como hira configurado el archivo, asi siempre sabre si esta tabulado o no... bueno...
hasta el moemnto tengo esto


<!--#include file="xelupload.asp"-->
<!--#include file="_validaString.asp"-->
<%
set conexion = server.CreateObject("adodb.connection")
conexion.open session("strConn")

set objUpload = new xelUpload
objUpload.Upload()

grupo = objUpload.form("grupo")
radiobutton = objUpload.form("radiobutton")

set objFich = objUpload.Ficheros("archivo")
objFich.Guardar Server.MapPath("cargaDestinatarios")
Aux_imagen = objFich.Nombre
'set oFich = nothing

sql = "CREATE TABLE "&grupo&" "
sql = sql + "("
sql = sql + " id_cliente INT,"
sql = sql + " nombres_cliente TEXT,"
sql = sql + " apellidoPaterno TEXT,"
sql = sql + " apellidoMaterno TEXT,"
sql = sql + " direccion TEXT,"
sql = sql + " fechaNac DATETIME,"
sql = sql + " email TEXT"
sql = sql + ")"
conexion.Execute sql

Set fso = CreateObject("Scripting.FileSystemObject")
Set textStreamObject = fso.OpenTextFile(Server.Mappath("cargaDestinatario s") & "\prueba.txt",1,false,0)

If not textStreamObject.AtEndOfStream Then
while not textStreamObject.AtendOfStream
linea = textStreamObject.ReadLine
arreglo = split(linea, chr(13)) ' tab es 9
'response.write (arreglo(i)) & "<br>"
wend

for i=0 to ubound(arreglo) 'este no se si lo realiza ya k no me
dato = split(arreglo(i), chr(radiobutton)) 'imprime valores...
response.write(dato(i)) & "<br>"

sql2 = "INSERT INTO "&grupo&" (id_cliente, nombres_cliente, apellidoPaterno, apellidoMaterno, direccion, fechaNac, email" & _
" ) VALUES (" & _
" '"& dato(1) &"'," & _
" '"& dato(2) &"'," & _
" '" & dato(3) & "'," & _
" '" & dato(4) & "'," & _
" '" & dato(5) & "'," & _
" '" & dato(6) & "'," & _
" '" & dato(7) & "' " & _
")"
conexion.EXECUTE sql2
'response.redirect("admin_forzarFiltro&Envio.asp?i d_encuesta="&var_id_encuesta&"")
next
end if

Set textStreamObject = Nothing
Set fso = Nothing

tambien kiero saber si se pueden tomar los valores del arreglo como lo estoy haciendo, xk me manda un error, pero en algunos manuales mes dicen k es asi...
  #2 (permalink)  
Antiguo 25/01/2006, 08:50
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
¿cuál es la pregunta referente a split?
¿qué error te manda?
  #3 (permalink)  
Antiguo 25/01/2006, 09:09
 
Fecha de Ingreso: noviembre-2004
Mensajes: 371
Antigüedad: 19 años, 7 meses
Puntos: 0
lo que pasa cuando hago

for i=0 to ubound(arreglo)
dato = split(arreglo(i), chr(radiobutton))
response.write(dato(i)) & "<br>"

no me imprime los valores ¿xk? luego esos valores los tengo k ingresar a la nueva tabla
  #4 (permalink)  
Antiguo 25/01/2006, 10:13
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
1. Verifica que existen los delimitadores para hacer el split
2. Utiliza la funcion isArray(arreglo) que evalua si un dato es arreglo if isArray(arreglo) then

Por ahi puede estar tu problema, la verdad no me detuve a leer todo tu codigo, te sugiero que solo pongas la parte funcional pues no creo que muchos lo quieran leer.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 25/01/2006, 11:12
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 22 años, 4 meses
Puntos: 2
Cita:
dato = split(arreglo(i), chr(radiobutton)) 'imprime valores...
por que usas chr(radiobutton) ?
__________________
Manual de ASP Avanzado ;-)
  #6 (permalink)  
Antiguo 25/01/2006, 11:21
 
Fecha de Ingreso: noviembre-2004
Mensajes: 371
Antigüedad: 19 años, 7 meses
Puntos: 0
vale compadre veremos k pasa

con respecto al codigo todo es parte de la funcionalidad, y como siempre leeo k pongan el codigo para ver que pasa lo puse...

uso chr(radiobutton) por que mando un valor k sera el tipo de limitador (tabulacion, comas, etc)

Última edición por bitshoot; 25/01/2006 a las 11:32
  #7 (permalink)  
Antiguo 25/01/2006, 11:24
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 22 años, 4 meses
Puntos: 2
si los datos estan separados por comas usas
dato = split(arreglo(i), ",")

tab
dato = split(arreglo(i), vbtab)




saludos
__________________
Manual de ASP Avanzado ;-)
  #8 (permalink)  
Antiguo 25/01/2006, 11:57
 
Fecha de Ingreso: noviembre-2004
Mensajes: 371
Antigüedad: 19 años, 7 meses
Puntos: 0
no me imprime datos.......... es xk no hay datos???

if isArray(arreglo) then
for i=0 to ubound(arreglo)
dato = split(arreglo(i), chr(radiobutton))
response.write(dato(i)) & "<br><br>"


'response.redirect("admin_forzarFiltro&Envio.asp?i d_encuesta="&var_id_encuesta&"")
next
end if
  #9 (permalink)  
Antiguo 25/01/2006, 12:35
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 22 años, 4 meses
Puntos: 2
Cita:
uso chr(radiobutton) por que mando un valor k sera el tipo de limitador (tabulacion, comas, etc)
ok perfecto

pero aun asi debes verificar que valor trae la variable

ej

if radiobutton="," then ' aqui no hay problema lo dejas tal cual, ya que es un caracter

pero en:
if radiobutton=vbtab then

o

if radiobutton=chr(9) then

como sabes si un tabulador???

que valor te devuelve cuando es un tabulador? pon esa parte del formulario para quedar mas claro



saludos
__________________
Manual de ASP Avanzado ;-)
  #10 (permalink)  
Antiguo 25/01/2006, 12:39
 
Fecha de Ingreso: noviembre-2004
Mensajes: 371
Antigüedad: 19 años, 7 meses
Puntos: 0
tabulador = 9
enter = 13
y asi... ya tengo los valores y los verifique. es solo que cuando tomo la linea entera y la guardo en un arreglo luego cuando hago otro split para buscar los tab o comas etc... y muestro esos valores no me arroja nada.
  #11 (permalink)  
Antiguo 25/01/2006, 12:44
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 22 años, 4 meses
Puntos: 2
por supuesto haz la prueba con un archivo que este correctamente tabulao, de todas maneras dame unos minutos para hacer una prueba...
__________________
Manual de ASP Avanzado ;-)
  #12 (permalink)  
Antiguo 25/01/2006, 12:49
 
Fecha de Ingreso: noviembre-2004
Mensajes: 371
Antigüedad: 19 años, 7 meses
Puntos: 0
ok... lo esto haciendo con un archovo bien tabulado
por ejemplo

rodrigo | rodriguez | la florida | chile -> kiero guardar linea a linea en un array
andres | escobar | pte alto | argentina -->

y rodrigo | rodriguez | la florida | chile y los datos en otro, pero por separado

| = tab
--> = fin de linea o enter (13)

la idea es guardar rodrigo en un campo, rodriguez en otro... y asi para todas las linas... se entiende??

Set fso = CreateObject("Scripting.FileSystemObject")
Set textStreamObject = fso.OpenTextFile(Server.Mappath("cargaDestinatario s") & "\prueba.txt",1,false,0)
i = 0
If not textStreamObject.AtEndOfStream Then
while not textStreamObject.AtendOfStream
'i = i + 1
linea = textStreamObject.readLine
arreglo = split(linea, chr(13)) ' tab es 9
response.write (arreglo(i)) & "<br><br><br>"
wend

for i=0 to ubound(arreglo)
dato = split(arreglo(i), chr(radiobutton))
response.write(dato(i)) & "<br><br>"
next
end if

eso es lo k tengo por ahr
  #13 (permalink)  
Antiguo 25/01/2006, 12:59
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 22 años, 4 meses
Puntos: 2
muy ahora si lo verifique era un problema de logica

cambia donde dice radiobutton=9 y la ruta del archivo
Código:
<%
Set fso = CreateObject("Scripting.FileSystemObject") 
Set textStreamObject = fso.OpenTextFile(Server.Mappath("prueba.txt"),1,false,0) 
radiobutton=9 ' cambialo por tu request.form
If not textStreamObject.AtEndOfStream Then
    while not textStreamObject.AtendOfStream
        linea = textStreamObject.ReadLine 
        arreglo = split(linea, chr(13)) ' tab es 9
        'response.write (arreglo(i)) & "<br>" 
        for i=0 to ubound(arreglo) 'este no se si lo realiza ya k no me 
            dato = split(arreglo(i), chr(radiobutton)) 'imprime valores...
        next
        for i=0 to ubound(dato)
            response.write(dato(i)) & "<br>" 
        next
    wend
end if 
 
Set textStreamObject = Nothing 
Set fso = Nothing%>
__________________
Manual de ASP Avanzado ;-)
  #14 (permalink)  
Antiguo 25/01/2006, 13:12
 
Fecha de Ingreso: noviembre-2004
Mensajes: 371
Antigüedad: 19 años, 7 meses
Puntos: 0
justamente pero deje la ruta tal cual, a mi me mando un error y dejandola como la tenia antes me funciono, se le agradece no sabe cuanto mi amigo
y puta me dieron ganas de invitarle una chelita heladita por todas las molestias, pero no mony a fin de mes jijijiji

vale compadre.
  #15 (permalink)  
Antiguo 25/01/2006, 13:15
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 22 años, 4 meses
Puntos: 2
dejesmoslo en una mineral no mas...
__________________
Manual de ASP Avanzado ;-)
  #16 (permalink)  
Antiguo 25/01/2006, 13:35
 
Fecha de Ingreso: noviembre-2004
Mensajes: 371
Antigüedad: 19 años, 7 meses
Puntos: 0
Jajajaja Ok
  #17 (permalink)  
Antiguo 25/01/2006, 14:38
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 22 años, 4 meses
Puntos: 2
ok. peros sabes que , no modifiques los temas ya que pueden servir a otros.



saludos
__________________
Manual de ASP Avanzado ;-)
  #18 (permalink)  
Antiguo 25/01/2006, 14:47
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
Si, ya va como 3 cambios de nombre que al menos yo le noté a éste tema!
__________________
...___...
  #19 (permalink)  
Antiguo 25/01/2006, 14:59
 
Fecha de Ingreso: noviembre-2004
Mensajes: 371
Antigüedad: 19 años, 7 meses
Puntos: 0
ok ok ok sorri
  #20 (permalink)  
Antiguo 26/01/2006, 10:03
 
Fecha de Ingreso: noviembre-2004
Mensajes: 371
Antigüedad: 19 años, 7 meses
Puntos: 0
sorry pero el tema aun no lo puedo solucionar mira la solucion k me diste esta ok y se agradese mucho, pero no logro hacer el ingreso se los datos a la tabla
mira este es el output del archivo de texto

Carlos Alberto
Rodriguez Ramirez
los ceibos 0681
08/09/1980
[email protected]
Juan Luis
Sepulveda Castañeda
Las encinas 1548
01/03/1788
[email protected]
Luisa Angelica
Revolledo Fuentes
Las condes 2887
05/08/1981
[email protected]
Marco Rojas
Ramirez Perales
Vic.Mackenna 877
02/06/1979
[email protected]

lo que esta bien, pero la tabla esta estructurada de la siguiente manera

id_cliente, nombres_cliente, apellidoPaterno, apellidoMaterno, direccion, fechaNac, email

siendo el id autonumerico, como hago para hacer la separacion por linea para hacer el ingreso y luego pasar a la siguiente linea para seguir haciendo el total del ingreso del archivo de texto?
  #21 (permalink)  
Antiguo 26/01/2006, 10:50
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 22 años, 4 meses
Puntos: 2
lo haces dentro del :

Código:
for i=0 to ubound(dato)
    response.write(dato(i)) & "<br>" 
next
en vez que mostrar el arreglo vas ingresando ej:

primero separamos el apellido paterno del materno para eso usa otro split, pero tendrias problemas con apellidos como "del carmen rojas". por ahora no se que solucion puede darsele a eso

te quedaria asi:
Código:
temp=split(dato(1), " ")
paterno=temp(0)
materno=temp(1)

luego ingresas
Cita:
sql="insert into clientes (nombres_cliente, apellidopaterno, apellidomaterno, direccion, fechanac, email) values ('"&dato(0)&"', '"&paterno&"', '"&materno&"', '"&dato(2)&"', '"&dato(3)&"', '"&dato(4)&"') "


saludos
__________________
Manual de ASP Avanzado ;-)
  #22 (permalink)  
Antiguo 26/01/2006, 11:21
 
Fecha de Ingreso: noviembre-2004
Mensajes: 371
Antigüedad: 19 años, 7 meses
Puntos: 0
y un tema aparte pero con el mismo fin...
estoy creando la tabla de la sig manera, pero me manda un error en el autoencrent


sql = "CREATE TABLE "&grupo&" "
sql = sql + "("
sql = sql + " id_cliente AUTOINCREMENT ,"
sql = sql + " nombres_cliente TEXT,"
sql = sql + " apellidoPaterno TEXT,"
sql = sql + " apellidoMaterno TEXT,"
sql = sql + " direccion TEXT,"
sql = sql + " fechaNac DATETIME,"
sql = sql + " email TEXT"
sql = sql + ")"
ejecuto la conexion

y si pongo text(20) me manda error en los parentesis, tco me acepta variables de tipo nvarchar xk?
  #23 (permalink)  
Antiguo 26/01/2006, 11:25
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 22 años, 4 meses
Puntos: 2
que base de datos usas? por que no configuras los tipos de datos en la misma base de datos?
__________________
Manual de ASP Avanzado ;-)
  #24 (permalink)  
Antiguo 26/01/2006, 11:42
 
Fecha de Ingreso: noviembre-2004
Mensajes: 371
Antigüedad: 19 años, 7 meses
Puntos: 0
Porque La Tabla Se Crea Al Cargar El Archivo De Texto, Se Crea Una Tabla Para Cada Archivo De Texto Que Se Sube, Trabajo Con Sql

Última edición por bitshoot; 26/01/2006 a las 14:19
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 20:46.