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

quitar palabas de frases en una variable

Estas en el tema de quitar palabas de frases en una variable en el foro de ASP Clásico en Foros del Web. SAludos, tengo una variable con cadenas asi: mivariable = "fotos de paisajes" mivariable= "motos y carros" lo que deseo es hacer una lista de palabras, ...
  #1 (permalink)  
Antiguo 05/05/2003, 10:12
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
Exclamación quitar palabas de frases en una variable

SAludos,

tengo una variable con cadenas asi:

mivariable = "fotos de paisajes"
mivariable= "motos y carros"

lo que deseo es hacer una lista de palabras, como por ejemplo:

y, si, no, de, las, los, e, etc..... y que ninguna de esas palabras esten en mis cadenas, por ejemplo si escriben:
mivariable = "fotos de paisajes"

me quede como resultado:
mivariable = "fotos paisajes"


si escribo
mivariable= "motos y carros"
me quede como resultado
mivariable= "motos y carros"

asi sucesivamente,

y al final que me muestre un mensaje que diga la palabra que se quito, por ejemplo en este caso seria, se ha omitido la palabra de por ser muy comun y para no afectar el resultado de su busqueda.

alguien me puede ayudar?¿
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #2 (permalink)  
Antiguo 05/05/2003, 11:00
 
Fecha de Ingreso: abril-2003
Ubicación: Guayaquil
Mensajes: 3
Antigüedad: 21 años, 1 mes
Puntos: 0
Hola como estas

Al parecer lo que deseas realizar es una busqueda pero sin palabras que consideras muy comunes, al puro estilo de los buenos buscadores como google, altavista, etc.

Bueno en primer lugar lo que debes hacer es almacenar en un arreglo tus palabras definidas como "comunes" en cualquier busqueda.

Por ejemplo

<%
dim comunes, cadena, quitadas

comunes = Array("", " y ", " si ", " no ", " de ", " las ", " los ", " e ")
cadena = "fotos de paisajes"
%>

Fijate que cada palabra dentro del arreglo contiene un espacio tanto a la derecha como a la izquierda de la misma, para facilitar el uso apropiado de la funcion Replace a continuacion.

<%
For I = 1 to Ubond(comunes)
If Instr(cadena, array(i) )<>0 Then
Replace(cadena, array(i), "")
quitadas = quitadas & ", " & array(i)
End If
Next
%>

El efecto que causamos introduciendo el Replace() dentro del For, es justamente que si encuentra una de las palabras definidas en tu arreglo la funcion replace la reemplaza por espacios en blanco asi "", es decir esta funcion replace no reemplazaria una subcadena dentro de otra sino que la eliminaria en este caso.

Y justamente por el hecho que Replace se utiliza para reemplazar una subcadena por otra, es que era necesario añadir espacios en blanco a cada palabra comun debido a que si tuvieramos algo como esta cadena

micadena = "motos y carros del año"
Replace(micadena, "de", "")

la palabra comun "de" forma parte de "del"
obteniendo este resultado

"motos y carros l año"

Con respecto a mostrar las palabas que han sido quitadas de la busqueda, la variable "quitadas " almacenaria el listado de las mismas.


Esperando que lo explicado anteriormente te sirva, me despido y te deseo suerte en tu proyecto.


Saludos
Alco
  #3 (permalink)  
Antiguo 05/05/2003, 15:24
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
hola muchas gracias por tu colaboracion,
lo he probado asi:


comunes = Array("", " y ", " si ", " no ", " de ", " las ", " los ", " e ")
cadena = Request("palabras")
For i = 1 to Ubond(comunes)
If Instr(cadena, array(i)) <> 0 Then
Replace(cadena, array(i), "")
quitadas = quitadas & ", " & array(i)
End If
Next
%>Se quitaron estas palabras: <%=quitadas%>


y me sale este error:

Error de compilación de Microsoft VBScript error '800a0414'

No se puede utilizar paréntesis al llamar a Sub

/decali/spider/buscar2.asp, line 26

Replace(cadena, array(i), "")
-----------------------------^


que puede ser?
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #4 (permalink)  
Antiguo 05/05/2003, 15:28
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
array(i) NO DEBERIA SER comunes(i)..

por lo que veo..es eso lo que recorres...array(i) no es una variable
  #5 (permalink)  
Antiguo 05/05/2003, 15:44
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
hola, no te entendi muy bien , la verdad no manejo mucho que digamos los arrays, me puedes hacer el favor de decirme como seria la forma correcta,
espero me puedas colaborar con esto..
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #6 (permalink)  
Antiguo 05/05/2003, 15:53
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
no me he detenido a revisar el codigo que te dio Alco..pero cuando recorres tu split

For i = 1 to Ubond(comunes)

deberias hacer un replace usando el spit comunes y no el array(i) que no es nada segun el codigo...

haz el replace asi

Replace(cadena, comunes(i), "")

aunke como te digo no he revisado la funcion de codigo...te recomiendo que averigues un poco mas acerca del uso del split, porke es una lata usar un codigo que uno no le ve ni pies ni cabeza..

asi si lo quieres modificar a futuro sabras por don de echarle mano.

saludos
  #7 (permalink)  
Antiguo 05/05/2003, 15:58
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
gracias por tu interes, no he tenido tiempo de investigar, ya qeu me pidieron solucionar esto como de emergencia,

lo coloque como me dices y me sigue saliendo el mismo error, agredeceria si me hechas una manito o alguien que me colabore..
gracias..
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #8 (permalink)  
Antiguo 05/05/2003, 16:07
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
tambien te falta referenciar a que variable le estas haciendo el replace

no_se_cual_variable = Replace(cadena, comunes(i), "")
  #9 (permalink)  
Antiguo 05/05/2003, 16:08
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
ya habia visto ese error tambien, le asigue como variable comunes y tambien cadena y ninguna me funciono, me salia el mismo error, o que no coincidian los tipos Ubound..
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #10 (permalink)  
Antiguo 05/05/2003, 16:14
 
Fecha de Ingreso: abril-2003
Ubicación: Guayaquil
Mensajes: 3
Antigüedad: 21 años, 1 mes
Puntos: 0
Hola nuevamente soy yo y luego de corregir algunos bugs te puedo decir que esta es la forma correcta de lograr lo que quieres

Pruebalo y me comentas

<%
comunes = Array("", " y ", " si ", " no ", " de ", " las ", " los ", " e ")
cadena = Request("strquery")
For i = 1 to Ubound(comunes)
If Instr(cadena, comunes(i)) <> 0 Then
cadena = Replace(cadena, comunes(i), " ")
quitadas = quitadas & " " & comunes(i)
End If
Next
Response.Write "<b>La cadena resultante seria: </b>" & cadena & "<br>"
Response.Write "<b>Se omitio la(s) siguiente(s) palabra(s):</b> " & quitadas
%>

Saludos
Alco
  #11 (permalink)  
Antiguo 05/05/2003, 16:14
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
a verrrrrrrrr...haz esto antes del for y verifica que traiga los valores del array

comunes = Array("", " y ", " si ", " no ", " de ", " las ", " los ", " e ")

response.write comunes(1) &"<br>"
response.write comunes(2) &"<br>"
response.write comunes(3) &"<br>"
...
...
..
  #12 (permalink)  
Antiguo 05/05/2003, 16:24
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
De acuerdo

muchas gracias por la colaboracion a los 2, ya me funciona tal cual como esperaba,

de nuevo muchas gracias.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:45.