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

Problema con string

Estas en el tema de Problema con string en el foro de ASP Clásico en Foros del Web. Buenas que tal gente! Necesito ayuda, hice esta script para que de una cadena me separe elas palabras que yo deseo utilizando estos marcadores: " ...
  #1 (permalink)  
Antiguo 20/12/2006, 05:44
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 19 años, 3 meses
Puntos: 7
Exclamación Problema con string

Buenas que tal gente!
Necesito ayuda, hice esta script para que de una cadena me separe elas palabras que yo deseo utilizando estos marcadores: " | " y " -- "
El string a tratar es algo así :
CAL FEITIS X 25 KG--25|HIERRO TORS. 10 mm--5
Entonces lo que "debería" hacer el script es:
Guardar en el vector prod_cant los datos separados por " | " osea que el vector
Código:
prod_cant(0) = CAL FEITIS X 25 KG--25 y prod_cant(1) = HIERRO TORS. 10 mm--5
Luego cuando entra al bucle for lo que debería hacer es usando como separador " -- " tomar el vector prod_cant(0) y guardarlo separado en el nuevo vector sp, entonces sp quedaría así:
Código:
sp(0) = HIERRO TORS. 10 mm
sp(1) = 5
luego en esta linea lo que hago es darle a m el valor de prod+ = + el vector sp(0), y a m lo mismo pero con cant y sp(1)
Código:
	w = prod & "=" & sp(0)
	m = cant & "=" & sp(1)
Bueno y luego imprimo los resultados en un formulario de solo lectura, el problema es que no se porqué pero este código solo me responde en blanco, osea que donde lo incluyo es como si no existiera :S por favor necesito urgentemente ayuda!
__________________
I'm gonna start a revolution from my bed...
  #2 (permalink)  
Antiguo 20/12/2006, 08:51
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: Problema con string

NO pones el código que de verdad es útil, asi que adivinando:
Código:
Cadena = "CAL FEITIS X 25 KG--25|HIERRO TORS. 10 mm--5"
vec1 = SPLIT(Cadena,"|")
For i=0 to Ubound(vec1)
    vec2 = SPLIT(vec1(i),"--")
    response.write i & "Texto: " & vec2(0) & "<br>"
    response.write "   Valor: " & vec2(1) & "<br>"
Next
Saludos
  #3 (permalink)  
Antiguo 20/12/2006, 17:32
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Problema con string

Ups! perdón lo que pasa es que llevaba un tiempito sin dormir, así que mis neuronas no estaban en la mejor sincronía, volviendo a pedir disculpas aquí va el código:
Código:
<%
dim texto
texto = request("prod")
texto = Trim(texto)

'si existen espacios dobles en la cadena, los eliminamos con este bucle
Do While InStr(1, texto, "  ") > 0
    texto = Replace(texto, "  ", " ")
Loop

'y hacemos un vector con sus palabras
Dim prod_cant, w, sp
prod_cant = split(texto, "|")

x=0
For i = 0 to ubound(prod_cant)
prod = "prod" & x
cant = "cant" & x
sp = split(prod_cant(i), "--") 
	w = prod & "=" & sp(0)
	m = cant & "=" & sp(1)
Response.write("<input disabled type=text size=30 name=prod"&i&" id=prod"&i&" value="&w& "><input disabled type=text size=7 name=cant"&i&" id=cant"&i&" value="&m&">")	
x = x+1
next
%>
Por cierto he probado lo que me pusiste arriba y no me ha funcionado
__________________
I'm gonna start a revolution from my bed...

Última edición por pablinff; 20/12/2006 a las 17:44
  #4 (permalink)  
Antiguo 20/12/2006, 17:41
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: Problema con string

vale, pero, el código que pones al final, ¿tiene problemas?, quisiera ver el contenido de la variable "texto"
  #5 (permalink)  
Antiguo 20/12/2006, 18:02
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Problema con string

Justamente, el problema es que no me arroja nada... viendo luego el código fuente que arroja el servidor este script no arroja nada, y la variable texto concretamente toma valores como este:
CAL FEITIS X 25 KG--25|HIERRO TORS. 10 mm--5|MINETTI CEMENTO X 50KG--2|
__________________
I'm gonna start a revolution from my bed...
  #6 (permalink)  
Antiguo 21/12/2006, 16:59
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: Problema con string

Pues insisto ...... no creo que a la variable texto le llegue lo que tu crees, deberias de dubuguear un poco.

Si tu código lo corro casi, casi, con copiar y pegar, funciona bien:
Código:
<%
dim texto
texto = "CAL FEITIS X 25 KG--25|HIERRO TORS. 10 mm--5|MINETTI CEMENTO X 50KG--2"
texto = Trim(texto)

'si existen espacios dobles en la cadena, los eliminamos con este bucle
Do While InStr(1, texto, "  ") > 0
    texto = Replace(texto, "  ", " ")
Loop

'y hacemos un vector con sus palabras
Dim prod_cant, w, sp
prod_cant = split(texto, "|")

x=0
For i = 0 to ubound(prod_cant)
prod = "prod" & x
cant = "cant" & x
sp = split(prod_cant(i), "--") 
	w = prod & "=" & sp(0)
	m = cant & "=" & sp(1)
Response.write("<input disabled type=text size=30 name=prod"&i&" id=prod"&i&" value="&w& "><input disabled type=text size=7 name=cant"&i&" id=cant"&i&" value="&m&">" & "<br>")	
x = x+1
next
%>
prod0=CAL cant0=25
prod1=HIERRO cant1=5
prod2=MINETTI cant2=2
  #7 (permalink)  
Antiguo 22/12/2006, 15:47
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Problema con string

Listo! ya está corregido!, había sido que no me estaba extrayendo los datos de la BD y bueno solucioné eso y después surgió otro problema, que sp(0) me lo tomaba fuera de rango, así que para solucionarlo lo metí dentro de un bucle for el cuál misteriosamente lo solucionó.
Bueno acá dejo el código final por si alguien le interesa :P
Código:
<%
dim texto
texto = rs("prod")
texto = Trim(texto)

'si existen espacios dobles en la cadena, los eliminamos con este bucle
Do While InStr(1, texto, "  ") > 0
    texto = Replace(texto, "  ", " ")
Loop

'y hacemos un vector con sus palabras
Dim prod_cant, x, sp
prod_cant = split(texto, "|")

For i = 0 to ubound(prod_cant)
sp = split(prod_cant(i), "--") 
	for x = 1 to ubound(sp)
		Response.write("<input disabled type='text' size=30 name='prod"&i&"' id='prod"&i&"' value='"&sp(0)& "'><input disabled type=text size=7 name='cant"&i&"' id='cant"&i&"' value='"&sp(1)&"'>" & "<br>")	
	next
next
%>
Saludos y muchas gracias Myakire por tu gran ayuda!
__________________
I'm gonna start a revolution from my bed...
  #8 (permalink)  
Antiguo 22/12/2006, 16:26
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: Problema con string

No, pues de nada

Ahora si me permites, te retoco tu código para "reducirlo" un poco.
Código:
<%
texto = Trim(rs("prod"))
Do While InStr(1, texto, "  ") > 0
    texto = Replace(texto, "  ", " ")
Loop

prod_cant = split(texto, "|")

For i = 0 to ubound(prod_cant)
   sp = split(prod_cant(i), "--") %>
   <input disabled type="text" size=30 name="prod<%=i%>" value="<%=sp(0)%>">
   <input disabled type="text" size=7 name="cant<%=i%> value="<%=sp(1)%>"><br><%
next
%>
Saludos
  #9 (permalink)  
Antiguo 22/12/2006, 17:30
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Problema con string

Pero como no te voy a permitir retocarlo! es un honor! :P
:D muchas gracias!!
__________________
I'm gonna start a revolution from my bed...
  #10 (permalink)  
Antiguo 22/12/2006, 20:21
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Problema con string

Estuve probando y no se porqué en ie me tira error, osea me dice sp(0) está fuera del rango permitido, pero lo soluciono con un bucle for entre los tags html y funciona, la verdad es que no entiendo el porque de este tipo de error...:S
__________________
I'm gonna start a revolution from my bed...
  #11 (permalink)  
Antiguo 26/12/2006, 09:42
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: Problema con string

jejeje, que bueno que U_G no leyó lo primero o me hubiera "cotorreado" mucho, jejeje

Bueno, yo no soy muy partidario de "solucionar" las cosas sin entender bien el por que tenian un problema, el bluque FOR que te quita el problema es por que lo inicias del 1 en lugar de 0, entonces supongo que no entra al ciclo y por eso la consulta a sp(0) ya no marca error.

En un post tu pusiste como ejemplo esto:

CAL FEITIS X 25 KG--25|HIERRO TORS. 10 mm--5|MINETTI CEMENTO X 50KG--2|

Deduzco que el problema es que tu cadena termina con pipe (|), entonces el SPLIT genera una última casilla "sin nada" y el segundo split tampoco genera nada, y claro es que la referecia a cualquier subindice marque error.
La solución sería formatear el parámetro para que no termine con el pipe.

Saludos y gracias
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 21:28.