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

Comparación de vacios (solucionado!)

Estas en el tema de Comparación de vacios (solucionado!) en el foro de ASP Clásico en Foros del Web. Hola a todos, tengo un problema al intentar comparar dos cadenas... el lio es que una de ellas, almacenada en la base de datos, el ...
  #1 (permalink)  
Antiguo 04/09/2009, 09:56
 
Fecha de Ingreso: abril-2009
Mensajes: 196
Antigüedad: 16 años
Puntos: 0
Comparación de vacios (solucionado!)

Hola a todos,

tengo un problema al intentar comparar dos cadenas... el lio es que una de ellas, almacenada en la base de datos, el vacio lo esta representando como "%0D" y la otra cadena se la paso por formulario, el cual si se ve como un vacio. Al compararlos obviamente no obtengo el resultado esperado... que puedo hacer???

Nota: la cadena almacenada en la base de datos se genera a partir de CAPICOM, con la función GetRandom.

Gracias!

Última edición por jotamarios; 04/09/2009 a las 14:46 Razón: Se soluciono
  #2 (permalink)  
Antiguo 04/09/2009, 10:06
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
Respuesta: Comparación de vacios

De que BD estamos hablando?
  #3 (permalink)  
Antiguo 04/09/2009, 10:41
 
Fecha de Ingreso: abril-2009
Mensajes: 196
Antigüedad: 16 años
Puntos: 0
Respuesta: Comparación de vacios

es sql server 2000
  #4 (permalink)  
Antiguo 04/09/2009, 12:50
 
Fecha de Ingreso: abril-2009
Mensajes: 196
Antigüedad: 16 años
Puntos: 0
Respuesta: Comparación de vacios

Debo aclarar que la combinación "%0D" no lo veo directamente en la base de datos ni imprimiendo con response.write... donde lo veo es en la URL, porque intento comparar caracter por caracter para ver porque me dice que no son iguales las cadenas, y es justo en el caracter vacio donde no es igual, a pesar de que imprimo y se ven iguales... pero en la URL me sale de una cadena vacio y de la otra "%0D" o "%0A"...
  #5 (permalink)  
Antiguo 04/09/2009, 14:45
 
Fecha de Ingreso: abril-2009
Mensajes: 196
Antigüedad: 16 años
Puntos: 0
De acuerdo Respuesta: Comparación de vacios

Ya lo solucione; lo comento por si a alguíen le llega a ocurrir.

El CAPICOM de microsoft, la función GetRandom de CAPICOM.Utilities genera un aleatorio que bien puede ser un campo vacio en una codificación diferente. Mi solución fue pasar caracter por caracter por la función asc para convertirlo a ascii y verificar el número, luego cuando los comparo caracter a caracter, los paso por un if que me salta cuando el ascii es 13 o 10, correspondientes a "%0D" y "%0A". Thats it

Gracias por la colaboración
  #6 (permalink)  
Antiguo 04/09/2009, 14:46
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
Respuesta: Comparación de vacios (solucionado!)

Ok ...

vamos a ver si entendí ....

tienes una cadena generada por un software que aunque se ve vacia, en realidad no lo esta ¿es así?

Bueno, se me ocurre entonces dos cosas:

Una, hacer un reeplace de los carecteres que haz detecto por una cadena vacia
Dos, no preguntar por si hay igualdad en el contenido de la cadena, puedes preguntar por si la longitud de ambas cadenas es cero, si los caracteres son no imprimibles, no te contaran como caracteres.

Inténtalo

Saludos


EDITO:

Me tardé en escribir este post y mientras tanto encontraste la solución, ¡bien hecho! , ahí será para la próxima la ayuda
  #7 (permalink)  
Antiguo 04/09/2009, 14:55
 
Fecha de Ingreso: abril-2009
Mensajes: 196
Antigüedad: 16 años
Puntos: 0
Respuesta: Comparación de vacios (solucionado!)

Myakire, la solución la puse arriba, pero te cuento que probe lo que dices(ambas) y pues, primero, el replace no encuentra los caracteres "%0A" o "%0D" y por lo tanto no los reemplaza, tampoco los ve como vacio. Segundo, la longitud de ambas cadenas me da lo mismo, tanto para la que envío por submit, dado que no le cuenta los vacios, como la que esta en la base de datos, que tambien ve como vacio. Gracias por tu colaboración!
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 19:04.