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

Eliminar saltos de linea en texto preformateado

Estas en el tema de Eliminar saltos de linea en texto preformateado en el foro de ASP Clásico en Foros del Web. Hola, tengo una aplicacion en la que se muestra en un globo emergente el contenido de los correos de un servidor que he descargado previamente. ...
  #1 (permalink)  
Antiguo 12/08/2009, 04:56
 
Fecha de Ingreso: septiembre-2006
Mensajes: 21
Antigüedad: 18 años, 7 meses
Puntos: 0
Eliminar saltos de linea en texto preformateado

Hola, tengo una aplicacion en la que se muestra en un globo emergente el contenido de los correos de un servidor que he descargado previamente. El problema esta en que algunos correos son muy grandes (en alto de pantalla) y el globo no aparece (parpadea la pantalla apareciendo y desapareciendo rapidamente el globo). Queria solucionar el problema eliminando los saltos de linea en exceso que existen en los emails pero no se como identificarlos en asp. Si imprimo el contenido que tengo almacenado en una variable no aparecen los caracteres que marcan el salto de linea en html asi q no se que es lo que tengo que buscar ni como hacerlo
alguna idea?
gracias
  #2 (permalink)  
Antiguo 12/08/2009, 06:08
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: Eliminar saltos de linea en texto preformateado

Hola

Creo entender que lo que ocurre es que te vienes varios saltos de línea seguidos y quieres eliminar todos menos uno. Montando una función para reemplazalos con una expresión regular tal vez se pudiera hacer

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 12/08/2009, 21:09
Avatar de mc_quake  
Fecha de Ingreso: enero-2006
Ubicación: www.ecocargo.cl
Mensajes: 683
Antigüedad: 19 años, 3 meses
Puntos: 8
Respuesta: Eliminar saltos de linea en texto preformateado

mira prueba haciendo esto

tu_variable =Replace(tu_variable, vbCrlf, "<br>")

tu_variable = Replace(tu_variable , "<br><br>","<br>")
tu_variable = Replace(tu_variable , "<br><br><br>","<br>")


disculpa si es medio grotesca lña forma de hacerlo pero a esta hora es lo unico que de me ocurrio
__________________
Mc_Quake

Para ayudar en lo que se pueda:Zzz:
  #4 (permalink)  
Antiguo 13/08/2009, 02:57
 
Fecha de Ingreso: septiembre-2006
Mensajes: 21
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Eliminar saltos de linea en texto preformateado

Gracias, es justo lo q andaba buscando. no sabia lo del vbCrlf. Lo unico q no se por que solo me quita algunos de los espacios, por mucha combinacion que haga con los replace. Pero al menos he conseguido quitar bastantes espacios
Solo una cosa que se me acaba de ocurrir. Igual no me quita el resto de espacios porque puede que existan espacios en blanco entre medias. ¿Como podria hacer para hacer la misma instruccion 'replace' pero teniendo en cuenta que entre la instrucciones '<br>' es posible que haya uno o varios espacios en blanco?
Gracias de nuevo
  #5 (permalink)  
Antiguo 13/08/2009, 03:28
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: Eliminar saltos de linea en texto preformateado

Cita:
Iniciado por Sepharat Ver Mensaje
Gracias, es justo lo q andaba buscando. no sabia lo del vbCrlf. Lo unico q no se por que solo me quita algunos de los espacios, por mucha combinacion que haga con los replace. Pero al menos he conseguido quitar bastantes espacios
Al hacerlo como lo estás haciendo, no sabes cuantos saltos de linea puede haber seguidos. De ahí que lo más conveniente sería se usases expresiones regulares

Cita:
Iniciado por Sepharat Ver Mensaje
Solo una cosa que se me acaba de ocurrir. Igual no me quita el resto de espacios porque puede que existan espacios en blanco entre medias. ¿Como podria hacer para hacer la misma instruccion 'replace' pero teniendo en cuenta que entre la instrucciones '<br>' es posible que haya uno o varios espacios en blanco?
Gracias de nuevo
...... ¿expresioines regulares?

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #6 (permalink)  
Antiguo 13/08/2009, 04:00
 
Fecha de Ingreso: septiembre-2006
Mensajes: 21
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Eliminar saltos de linea en texto preformateado

Gracias, voy a probar lo de las expresiones regulares que la verdad es que ya no me acordaba de lo que era eso. Voy a tener que repasar mis apuntes de Teoria de Automatas y Lenguajes Formales :)
Otra cosa que se que no va en este foro pero que me viene al problema. El caso es que ademas de eso necesito cortar las cadenas que sean excesivamente largas pero me surge un problema y es que no se lo que voy a imprimir exactamente y en algunos casos puede venirme codigo html. Cuando se da el caso, ya me ha pasado que la pagina no carga porque justo he cortado por un punto en el que habia codigo html y la pagina ya no sabe que hacer con el codigo. ¿Existe alguna etiqueta que me sirva para decirle al navegador que lo que tiene que imprimir en ese punto lo considere unicamente como texto y no como codigo?
Gracias
  #7 (permalink)  
Antiguo 13/08/2009, 04:25
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: Eliminar saltos de linea en texto preformateado

Hola

Que yo sepa no existe nada que haga lo que pretendes. Hace bastante intente esto mismo pero no lo conseguí. Al final tuve que tomar la decisión de eliminar todas las etiquetas html

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #8 (permalink)  
Antiguo 13/08/2009, 05:16
 
Fecha de Ingreso: septiembre-2006
Mensajes: 21
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Eliminar saltos de linea en texto preformateado

Vale, estoy intentando lo de las expresiones regulares con la funcion del foro xo no hay manera y supongo que sera que no acierto con la expresion regular. Esto es lo que estoy probando

reemplaza cuerpo,"<br>(\s*<br>+)*","<br>"

Lo he probado en una pagina que existe para probar las expresiones regulares y ahi funciona. ¿En asp es algun caracter especial el '<' o el '>' para que no funcione?
  #9 (permalink)  
Antiguo 13/08/2009, 06:24
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: Eliminar saltos de linea en texto preformateado

Hola

Hace mucho que las uso. Prueba con esto

<br>+(<[^>]+br>){1,}

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #10 (permalink)  
Antiguo 13/08/2009, 06:51
 
Fecha de Ingreso: septiembre-2006
Mensajes: 21
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Eliminar saltos de linea en texto preformateado

Nada, q no hay manera. De todas formas gracias por el esfuerzo. Seguire probando cosas hasta que me canse y si no pues habra que dejarlo con lo de los replace
Un saludo
  #11 (permalink)  
Antiguo 13/08/2009, 07:22
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: Eliminar saltos de linea en texto preformateado

Hola

Prueba ahora

Código asp:
Ver original
  1. <&#37;
  2. Function LimpiarTags(texto)
  3. Dim objRegExp
  4.  
  5.     Set objRegExp= New RegExp
  6. objRegExp.IgnoreCase = True
  7. objRegExp.Global = True
  8.  
  9. objRegExp.Pattern = "(<br>+([<br]+>){1,20})"
  10. texto = objRegExp.Replace(texto, "<br>")
  11.  Set objRegExp = Nothing
  12.  
  13.     LimpiarTags = texto
  14.  
  15. End Function
  16.  
  17. str = "Una cadena con saltos de lineas<br><br><br>Una cadena con saltos de lineas<br>Una cadena con saltos de lineas<br><br>Una cadena con saltos de lineas"
  18.  
  19. Response.Write LimpiarTags(str)
  20. %>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #12 (permalink)  
Antiguo 14/08/2009, 02:43
 
Fecha de Ingreso: septiembre-2006
Mensajes: 21
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Eliminar saltos de linea en texto preformateado

Vale, ahora si q funciona :). solo una pregunta, ¿en esa expresion regular q me has puesto se contempla lo de q pueda haber espacios en blanco entre medias? Lo digo porque en algunos casos sigue quedando un espacio aunque puede que sea que usa otro tipo de espaciado (tabuladores o cosas asi)
Gracias y un saludo
  #13 (permalink)  
Antiguo 14/08/2009, 04:46
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: Eliminar saltos de linea en texto preformateado

Cita:
Iniciado por Sepharat Ver Mensaje
Vale, ahora si q funciona :). solo una pregunta, ¿en esa expresion regular q me has puesto se contempla lo de q pueda haber espacios en blanco entre medias? Lo digo porque en algunos casos sigue quedando un espacio aunque puede que sea que usa otro tipo de espaciado (tabuladores o cosas asi)
Gracias y un saludo
No, no reemplazaría esto <br> <br>. Tendrás que añadirle esa condición

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #14 (permalink)  
Antiguo 14/08/2009, 07:00
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: Eliminar saltos de linea en texto preformateado

Cita:
Iniciado por Sepharat Ver Mensaje
El caso es que ademas de eso necesito cortar las cadenas que sean excesivamente largas pero me surge un problema y es que no se lo que voy a imprimir exactamente y en algunos casos puede venirme codigo html. Cuando se da el caso, ya me ha pasado que la pagina no carga porque justo he cortado por un punto en el que habia codigo html y la pagina ya no sabe que hacer con el codigo. ¿Existe alguna etiqueta que me sirva para decirle al navegador que lo que tiene que imprimir en ese punto lo considere unicamente como texto y no como codigo?


Pensando en voz alta

¿Colocar todo el texto dentro de un div con las dimensiones que quiero que se visualice y overflow:hidden para que solo se vea lo que quepa en ese espacio?

¿un iframe funcionaría igual?

¿Colocar el trozo de código cortado entro de un textarea con estilos para que no parezca un texarea?

¿Hacer un autómata que revise N caracteres antes y después de donde corté buscando alguna etiqueta que cause problemas?

En fin, cosa de probar
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:11.