Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/02/2003, 22:27
Avatar de AlZuwaga
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
Manoloweb, yo de expresiones regulares sé poco y nada pero por lo que puedo llegar a entender de tu ejemplo, no satisfacería los requerimientos de mrgubu ya que necesita no sólo resaltar el criterio de búsqueda (que con un simple replace alcanzaría, creo) sino que, además, necesita "recortar" de la totalidad de palabras del texto las 5 anteriores y posteriores a la palabra que concuerde con el criterio de búsqueda.

En la tarde estuve intentando hacer un script para ofrecerle pero por diversas cuestiones no pude finalizarlo... es más, quedó en un intento sin pulir y con algunos errores lógicos que paso a detallar:

Si la palabra buscada se encuentra antes de la quinta desde el comienzo del texto a buscar y/o hay menos de 5 palabras luego de ella hasta el fin de dicho string, el script falla.

Igualmente lo dejo por si a alguien le interesa y puede hacer algo con el:



<%
Criterio = "tren"

Dim Str(1)
Str(0) = "pero luego, el detenido cogió el tren y se dirigió hacia la frontera de argentina dónde se escaparía de las autoridades policiales."
Str(1) = "entonces fue cuando de repente el tren descarriló estallando en millones de partes."

For j = 0 to UBound(Str)

PosCriterio = InStr(Str(j), Criterio)
StrPreviaTmp = Trim(Left(Str(j), PosCriterio - 1))
StrPosteriorTmp = Trim(Right(Str(j), Len(Str(j)) - PosCriterio - Len(Criterio)))
PalabrasPrevias = Split(StrPreviaTmp, " ")
PalabrasPosteriores = Split(StrPosteriorTmp, " ")

Response.Write CHR(034) & "..."
For i = 4 to 0 step - 1
Response.Write PalabrasPrevias(UBound(PalabrasPrevias)-i) & " "
Next

Response.Write "<b>" & Criterio & "</b> "

For i = 0 to 4
Response.Write PalabrasPosteriores(i) & " "
Next

Response.Write "..." & CHR(034)

Response.Write "<p></p>"

Next
%>