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

cambiar variable

Estas en el tema de cambiar variable en el foro de ASP Clásico en Foros del Web. hola muchach@s tengo un pequeño inconveniente aqui va. paso un valor.. ej 154 y en la otra pagina tengo uan variable numeritos = 100,154,456 como ...
  #1 (permalink)  
Antiguo 16/07/2003, 10:04
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años, 5 meses
Puntos: 1
cambiar variable

hola muchach@s tengo un pequeño inconveniente aqui va.

paso un valor.. ej 154

y en la otra pagina tengo uan variable

numeritos = 100,154,456

como hago para que me quede
numeritos = 100,456

osea sacarle el valor que le estoy pasando a la variable

gratzie!
__________________
On error no hago nada porque deje de fumar...
  #2 (permalink)  
Antiguo 16/07/2003, 10:21
 
Fecha de Ingreso: febrero-2002
Ubicación: Santiago
Mensajes: 253
Antigüedad: 23 años, 3 meses
Puntos: 0
una idea

utiliza la funcion split como separador cuando encuentre una coma
y luego la funcion ubound

dejas los valores que devuelve el split en una variable
y ahi vas comparando, luego tienes que armar la cadena de nuevo

aqui hay un ejemplo del uso del split para que veas mejor

http://www.forosdelweb.com/showthrea...ighlight=split
  #3 (permalink)  
Antiguo 16/07/2003, 10:31
 
Fecha de Ingreso: marzo-2001
Ubicación: Gran Canaria
Mensajes: 381
Antigüedad: 24 años, 2 meses
Puntos: 2
Por si te sirve el codigo utilizando el split que comenta Renegado podria ser algo como:


Código:
<% 

	valorQueLlega = 124

	numeritos = "100,124,300,235"
	
	vectorNumeritos = Split(numeritos,",")
	
	cadenaTempotal = ""
	
	for i=0 to Ubound(vectorNumeritos)
		if (CInt(vectorNumeritos(i)) <> CInt(valorQueLlega)) then
			cadenaTempotal = cadenaTempotal & vectorNumeritos(i) & ","
		end if
	next
	
	cadenaTempotal = Left(cadenaTempotal,Len(cadenaTempotal)-1)
	
	response.write cadenaTempotal

%>



ToKaTa.
__________________

"Si pudieras volver.....¿.lo harias?"
  #4 (permalink)  
Antiguo 16/07/2003, 10:32
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Yo lo haría con una serie de arreglos

numeritos= 100,154,456

'Pasas el valor
mi_valor = 154

arrNumeritos= split(numeritos)

x=0
Dim arrNumeritos2()
For i=0 to uBound(arrNumeritos)
If not arrNumeritos(i)= mi_valor Then
If x=0 Then
Redim arrNumeritos2(x)
Else
Redim Preserve arrNumeritos2(x)
End If
arrNumeritos2(x)= arrNumeritos(i)
x= x + 1
End If
Next

Después tienes un arreglo con los números quitándole el valor que pasaste y lo puedes reconstruir a su forma original

numeritos=""
For i=0 to uBound(arrNumeritos2)
numeritos= numeritos & arrNumeritos2(i) & ","
Next

'Necesitamos parsear este valor
numeritos= left(numeritos, len(numeritos)-1)

'El resultado de todo esto es:

numeritos= 100,456

Es lo que se me ocurre, a lo mejor alguien sale con algo mejor

Salu2,

je je, hasta ahora vi las otras respuestas, que rápidos andan hoy
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 16/07/2003, 11:56
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años, 5 meses
Puntos: 1
Tokata probe tu codigo pero me dio este error

Microsoft VBScript runtime error '800a0005'

Invalid procedure call or argument: 'Left'

/contact_center/cookies/GuardarCambios.asp, line 31


u_goldman el tuyo me dio esto

Microsoft VBScript runtime error '800a0009'

Subscript out of range: 'uBound'

/contact_center/cookies/GuardarCambios.asp, line 37


estare haciendo algo mal? copie tal cual lo pegaron uds.

fenomenales!
__________________
On error no hago nada porque deje de fumar...

Última edición por dieguicho; 16/07/2003 a las 11:59
  #6 (permalink)  
Antiguo 16/07/2003, 13:16
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
je je je, bueno, en mi ejemplo es en la línea del split

hay que poner un delimitador, porque de lo contrario no está crando el arreglo

arrNumeritos= split(numeritos, ",")

Aunque a mi me gusta mas el código de Tokata, está más limpio
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 16/07/2003, 14:35
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años, 5 meses
Puntos: 1
ahi camina!!
arregle esto arrNumeritos= split(numeritos, ",") como me dijiste y anda bien..
siempre y cuando
numeritos = "100,124,300,235"
sea asi
si numeritos = "100" y quiero borrarle el 100
me da error de
Invalid procedure call or argument: 'Left'

como lo arreglo?????
toy muy pedigueño no? jeje
__________________
On error no hago nada porque deje de fumar...
  #8 (permalink)  
Antiguo 16/07/2003, 15:43
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
mmmhhhh, cierto, habría que poner una condición antes de que numeritos tenga un solo número

<%
numeritos= "400,154,100"
mi_valor = "100"

arrNumeritos= split(numeritos, ",")
If Ubound(arrNumeritos) > 0 Then
numeritos= ""
Dim arrNumeritos2()
For i=0 to uBound(arrNumeritos)
If not arrNumeritos(i)= mi_valor Then
numeritos= numeritos & arrNumeritos(i) & ","
End If
Next
numeritos= left(numeritos, len(numeritos)-1)
Else
If numeritos = mi_valor Then
numeritos= ""
End If
End If
Response.Write(numeritos)
%>

Creo que con eso ya queda bien
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 17/07/2003, 04:10
 
Fecha de Ingreso: marzo-2001
Ubicación: Gran Canaria
Mensajes: 381
Antigüedad: 24 años, 2 meses
Puntos: 2
hola dieguicho, siento haber estado perdido....la buena vida me esta matando...

el error que te daba mi codigo (solo por curiosidad), es que seguro que la cadena que le llega a Left no puede estar vacia. Es solo de comparar antes de usar left:


Código:
if (Len(CSTr(cadenaTempotal)) > 0) then
	cadenaTempotal = Left(cadenaTempotal,Len(cadenaTempotal)-1)
end if
aunque a estas alturas ya lo habreis descubierto

ToKaTa.
__________________

"Si pudieras volver.....¿.lo harias?"
  #10 (permalink)  
Antiguo 17/07/2003, 08:27
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años, 5 meses
Puntos: 1
ya funciona!

gracias muchach@s..
__________________
On error no hago nada porque deje de fumar...
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 15:20.