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

quitar palabras iguales entre dos variables

Estas en el tema de quitar palabras iguales entre dos variables en el foro de ASP Clásico en Foros del Web. Hola a todos, Necesito hacer lo siguiente y me gustaria si puede ser que me echaran una mano. Tengo en una variable BUSCAR="esta variable guarda ...
  #1 (permalink)  
Antiguo 15/12/2004, 14:48
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 22 años, 5 meses
Puntos: 6
quitar palabras iguales entre dos variables

Hola a todos,
Necesito hacer lo siguiente y me gustaria si puede ser que me echaran una mano.

Tengo en una variable

BUSCAR="esta variable guarda todo el texto que se quiera meter"

y otra

QUITAR="el,la,los,que,esta" (la forma de meter las palabras en esta variable me es indiferente)


necesito que las palabras que coincidan en BUSCAR y QUITAR se eliminen en la nueva variable

NUEVO_BUSCAR=(LAS PALABRAS DE BUSCAR) - (LAS PALABRAS DE QUITAR)

osea

NUEVO_BUSCAR="variable guarda todo texto quiera meter"


Gracias a todos.
  #2 (permalink)  
Antiguo 15/12/2004, 15:42
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 22 años, 6 meses
Puntos: 1
dim buscar,quitar,palabras_quitar,cadena_resul
buscar = "esta variable guarda todo el texto que se quiera meter"
quitar = "el,la,los,que,esta"

palabras_quitar = split(quitar,",")
cadena_resul = buscar

for x = 0 to ubound(palabras_quitar)
cadena_resul = replace(cadena_Resul,palabras_quitar(x),"")
next



espero que te sirva!!!!
  #3 (permalink)  
Antiguo 15/12/2004, 15:49
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 22 años, 5 meses
Puntos: 6
pues si, va perfecto.

Muchas gracias por tu ayuda
  #4 (permalink)  
Antiguo 15/12/2004, 16:50
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 22 años, 6 meses
Puntos: 1
nada! me alegro q t haya servido!
  #5 (permalink)  
Antiguo 15/12/2004, 17:53
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
debspain, no tuviste en cuanta algo!

Si por ejemplo en el array de "quitar" se encuentra la palabra "es", la palabra "esta", de la variable "buscar", terminará siendo "ta" porque se efectuará el replace de "es" sobre "esta"

Yo antes había pensado el mísmo méto que vos para responder pero lo descarté al ver ese problemita
__________________
...___...
  #6 (permalink)  
Antiguo 15/12/2004, 18:45
 
Fecha de Ingreso: diciembre-2004
Ubicación: Bs. As. - Argentina
Mensajes: 200
Antigüedad: 20 años, 5 meses
Puntos: 0
¿la solucion no podría ser buscar la con blancos (espacios) a los costados?
buscar = " " & buscar & " " (x si alguna palabra a elminar esta la principio o fin
luego con le mismo buucle que sugiere debspain
cadena_resul = replace(cadena_Resul," " & palabras_quitar(x) & " "," ")

x si te quedara una cadena de 2 espacios en medio, depsue hace las vecesuq ehaga falta
cadena_resul = replace(" ", " ")

Saludos.
__________________
Javo.
www.thesitewatcher.com
Monitoreo y Auditoría de Sitios de Internet
  #7 (permalink)  
Antiguo 16/12/2004, 04:59
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 22 años, 5 meses
Puntos: 6
pues si no me habia dado cuenta del problema, pero esta resuelto con la solucion de javopereira, pero no hace falta poner espacios al principio.

Codigo final
<%
dim buscar,quitar,palabras_quitar,cadena_resul
buscar = "esta variable guarda todo el texto que se quiera meter linda" & " "
quitar = "el,la,los, que,es,esta"

palabras_quitar = split(quitar,",")
cadena_resul = buscar

for x = 0 to ubound(palabras_quitar)
cadena_resul = replace(cadena_Resul,palabras_quitar(x) & " "," ")
next
Response.Write cadena_resul
%>

gracias

Última edición por suntus; 16/12/2004 a las 05:02
  #8 (permalink)  
Antiguo 16/12/2004, 07:47
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 22 años, 6 meses
Puntos: 1
uyyy cierto cierto, perdonadme por el error! :)
  #9 (permalink)  
Antiguo 16/12/2004, 09:25
 
Fecha de Ingreso: diciembre-2004
Ubicación: Bs. As. - Argentina
Mensajes: 200
Antigüedad: 20 años, 5 meses
Puntos: 0
me alegra haber ayudado.

Saludos a todos.
__________________
Javo.
www.thesitewatcher.com
Monitoreo y Auditoría de Sitios de Internet
  #10 (permalink)  
Antiguo 16/12/2004, 09:47
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
No es mi intención resultar muy pesado , pero la nueva solución propuesta por javopereira no es del todo perfecta. Me explico:

Si por ejemplo tenemos:

BUSCAR = "Por las noches, la soledad desespera"

QUITAR="la,noches"

Al buscar "{espacio}noches{espacio}" no la va a encontrar ya que la parabla es "{espacio}noches,{espacio}" (y va a ocurrir lo mismo con los puntos, los punto y coma, los dos puntos, los paréntesis y todo otro signo)


Lo solucionaría así, pero no me gusta:

BUSCAR = " " & BUSCAR & " " 'le agrego espacios antes y después
BUSCAR = Replace(BUSCAR, ",", " , ")
BUSCAR = Replace(BUSCAR, ".", " . ")
BUSCAR = Replace(BUSCAR, ";", " ; ")
BUSCAR = Replace(BUSCAR, ":", " : ")
...
BUSCAR = Replace(BUSCAR, "?", " ? ")
'... etc

Me parece que lo ideal sería descartar todo esto y buscar la solución mediante expresiones regulares (y aquí dejaría de participar puesto que no son para nada mi fuerte )

saludos
__________________
...___...
  #11 (permalink)  
Antiguo 16/12/2004, 10:01
 
Fecha de Ingreso: diciembre-2004
Ubicación: Bs. As. - Argentina
Mensajes: 200
Antigüedad: 20 años, 5 meses
Puntos: 0
Si vamos a usar expresiones regutlares, me bajo con Al Zuwaga.
Voluntad de ayudar tengo, pero inteligencia no mucha.

Suntus: si estas en el mismo nivel de ignorancia que yo con expresiones reg., segui dando vuelta la solucion de al zuwaga que me parece esta buena. Per entiendo que es un "injerto"

Dejo constancia que Al zuwaga no es pesado, el tipo tiene la cabeza abierta y se le ocurren opciones que a nosotros se nos escapan (bien x eso).

Saludos.
__________________
Javo.
www.thesitewatcher.com
Monitoreo y Auditoría de Sitios de Internet

Última edición por javopereira; 16/12/2004 a las 10:07
  #12 (permalink)  
Antiguo 16/12/2004, 10:45
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
podes usar
Replace (cadena_madre, cadena_buscada, cadena_cambio, comienzo, veces, comparacion)

Función de cadenas. Su funcionalidad es buscar una subcadena dentro de una cadena madre y reemplazarla por otra. Sus argumentos son o pueden ser:

- cadena_madre: Obligatorio. Cadena, variable que la contenga o expresión de cadena válida, que va a ser la cadena madre en la que vamos a buscar coincidencias.

- cadena_buscada: Obligatorio. Cadena, variable que la contenga o expresión de cadena válida, que va a ser la subcadena que vamos a buscar dentro de la cadena madre.

- cadena_cambio: Obligatorio. Cadena, variable que la contenga o expresión de cadena válida, que va a ser la subcadena que vamos a cambiar por cadena2 dentro de la cadena madre.

- comienzo: Opcional. Posición dentro de cadena_madre desde donde se va a comenzar a buscar cadena_buscada. Si se omite, se supone 1. Se debe utilizar junto con veces.

- veces: Opcional. Número de sustituciones de subcadena que se va a realizar. Si se omite, el valor predeterminado es -1, que significa hacer todas las sustituciones posibles. Se debe utilizar junto con comienzo.

- comparacion: Opcional. Valor numérico que indica el tipo de comparación que se va a utilizar cuando se evalúen subcadenas. Si es 0 (valor por defecto) se realiza una comparación de tipo binario, mientras que si es 1 se realiza una comparación textual.

Dependiendo de los resultados de la búsqueda, la función Replace puede devolver los siguientes valores:

si... devuelve
cadena es de longitud cero cadena de longitud cero ("")
cadena es Null un error
cadena_buscada es de longitud cero copia de cadena
cadena_cambio es de longitud cero copia de cadena con todas las apariciones de cadena_buscada eliminadas

comienzo >longitud de cadena cadena de longitud cero
veces = 0 copia de cadena
  #13 (permalink)  
Antiguo 16/12/2004, 14:13
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 22 años, 5 meses
Puntos: 6
bueno la verdad que tal como hemos llegado me vale, ya que las palabras a quitar las pongo yo previamente y lo que hare sera ponerlas tal como en el ejemplo.

de todas maneras voy a ver si con la idea de flacoluis sale algo

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 09:55.