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

Ayuda !! Romper texto cada 50 caracteres

Estas en el tema de Ayuda !! Romper texto cada 50 caracteres en el foro de ASP Clásico en Foros del Web. Hola tengo esto este texto Y ME ESTOY DESESPERANDO... POR FAVOR AYUDA "El ácido acetilsalicílico se administra principalmente por vía oral, aunque también existe para ...
  #1 (permalink)  
Antiguo 29/06/2010, 06:32
 
Fecha de Ingreso: junio-2010
Mensajes: 60
Antigüedad: 13 años, 10 meses
Puntos: 1
Ayuda !! Romper texto cada 50 caracteres

Hola tengo esto este texto Y ME ESTOY DESESPERANDO... POR FAVOR AYUDA

"El ácido acetilsalicílico se administra principalmente por vía oral, aunque también existe para uso rectal y como terapia intravenosa. Los comprimidos de aspirina para administración oral se hidrolizan con facilidad cuando se ven expuestos al agua o aire húmedo, de modo que deben permanecer almacenados en sus envoltorios hasta el momento de su administración. "


QUIERO QUE CADA 50 CARACTERES SE ROMPA LA LINEA (SIN CORTAR UNA PALABRA CON UN <BR>

DEBERIA QUEDAR POR LO TANTO ASI
"El ácido acetilsalicílico se administra principalmente
por vía oral, aunque también existe para uso rectal
y como terapia intravenosa. Los comprimidos de aspirina
para administración oral se hidrolizan con facilidad
cuando se ven expuestos al agua o aire húmedo, de modo
que deben permanecer almacenados en sus envoltorios
hasta el momento de su administración"


COMO LO PUEDO HACER ???


MIL GRACIAS!
  #2 (permalink)  
Antiguo 29/06/2010, 09:58
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Respuesta: Ayuda !! Romper texto cada 50 caracteres

Trata algo así, no lo probé, así que no me insultes si no funciona, la idea general es construir un arreglo a partir de la cadena proporcionada usando como separadores los espacios de dicha cadena.

- Iteras el arreglo
- Por cada iteración guardas en una variable temporal la palabra contenida en el índice de tu arreglo, si la longitud de tu variable temporal no es superior a 50 caracteres.
- Si es superior a 50 caracteres, entonces le pones el salto de linea y te sales del ciclo.

Código ASP:
Ver original
  1. <&#37;
  2. Dim cadena
  3. Dim arr
  4. Dim temp
  5. Dim caracteres
  6. Dim i
  7.  
  8. caracteres = 50
  9.  
  10. cadena = "El ácido acetilsalicílico se administra principalmente _
  11. por vía oral, aunque también existe para uso rectal _
  12. y como terapia intravenosa. Los comprimidos de aspirina _
  13. para administración oral se hidrolizan con facilidad _
  14. cuando se ven expuestos al agua o aire húmedo, de modo _
  15. que deben permanecer almacenados en sus envoltorios _
  16. hasta el momento de su administración"
  17.  
  18. arr = split(cadena, " ")
  19.  
  20. for i = 0 to uBound(arr)
  21.    if len(temp) <= caracteres then
  22.        temp = temp & arr(i) & " "
  23.    else
  24.        temp = temp & "<br>"
  25.        exit for
  26.    end if
  27. next
  28.  
  29. Response.Write(temp)
  30. %>

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 29/06/2010, 10:15
 
Fecha de Ingreso: junio-2010
Mensajes: 60
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Ayuda !! Romper texto cada 50 caracteres

Gracias por la ayuda !!!

Pero solo me da como respuesta....

"El ácido acetilsalicílico se administra principalmente"

EL resto del texto no lo muestra ... alguna sugerencia?
  #4 (permalink)  
Antiguo 29/06/2010, 10:21
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Ayuda !! Romper texto cada 50 caracteres

Claramente ese código tiene un error de lógica, y solo por que u_goldman lo advirtió sino era digno de ser insultado ()

Mi sugerencia es que hagas una prueba de escritorio, detectes el error y lo corrijas, la verdad es que cuando no se ven ganas de la otra parte de hacer las cosas, no motiva a resolverles el problema.
  #5 (permalink)  
Antiguo 29/06/2010, 11:40
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Respuesta: Ayuda !! Romper texto cada 50 caracteres

La verdad es que no leí bien el requerimiento...pensé que lo que pretendías era truncar el texto hasta 50 caracteres, perdon.


Sacale el exit for al ciclo:

Código ASP:
Ver original
  1. for i = 0 to uBound(arr)
  2.    if len(temp) <= caracteres then
  3.        temp = temp & arr(i) & " "
  4.    else
  5.        temp = temp & "<br>"
  6.    end if
  7. next

A ver si eso si funciona.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 29/06/2010, 13:47
 
Fecha de Ingreso: junio-2010
Mensajes: 60
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Ayuda !! Romper texto cada 50 caracteres

Hola!! ... sigue sin funcionar ....

me sale solamentente "El ácido acetilsalicílico se administra principalmente"
el resto de la frase no la escribe
  #7 (permalink)  
Antiguo 29/06/2010, 15:11
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Respuesta: Ayuda !! Romper texto cada 50 caracteres

Esta bien, me vas a obligar a probarlo

Probando....

Edit: Ok, así quedó, fíjate si te sirve:

Código ASP:
Ver original
  1. <&#37;
  2. Dim cadena
  3. Dim arr
  4. Dim temp
  5. Dim caracteres
  6. Dim cadenaFinal
  7. Dim agregaCaracter
  8. Dim i
  9.  
  10. caracteres = 50
  11.  
  12. cadena = "El ácido acetilsalicílico se administra principalmente " & _
  13. "por vía oral, aunque también existe para uso rectal " & _
  14. "y como terapia intravenosa. Los comprimidos de aspirina " & _
  15. "para administración oral se hidrolizan con facilidad " & _
  16. "cuando se ven expuestos al agua o aire húmedo, de modo " & _
  17. "que deben permanecer almacenados en sus envoltorios " & _
  18. "hasta el momento de su administración"
  19.  
  20. arr = split(cadena, " ")
  21.  
  22. for i = 0 to uBound(arr)
  23.     temp = temp & arr(i)
  24.     if len(temp) <= caracteres then
  25.         agregaCaracter =  " "
  26.     else
  27.         agregaCaracter = "<br>"
  28.         temp = ""
  29.     end if
  30.     cadenaFinal = cadenaFinal & arr(i) & agregaCaracter
  31. next
  32.  
  33. Response.Write(cadenaFinal)
  34. %>

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway

Última edición por u_goldman; 29/06/2010 a las 15:21
  #8 (permalink)  
Antiguo 29/06/2010, 15:27
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Ayuda !! Romper texto cada 50 caracteres

Cita:
Iniciado por u_goldman Ver Mensaje
Esta bien, me vas a obligar a probarlo
Dice un dicho méxicano: No tiene la culpa el índio, sino quien lo hace compadre
  #9 (permalink)  
Antiguo 30/06/2010, 05:18
 
Fecha de Ingreso: junio-2010
Mensajes: 60
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Ayuda !! Romper texto cada 50 caracteres

Gracias! Ahora si funciona !!! :)
  #10 (permalink)  
Antiguo 30/06/2010, 05:31
 
Fecha de Ingreso: junio-2010
Mensajes: 44
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Ayuda !! Romper texto cada 50 caracteres

Cita:
Iniciado por myakire Ver Mensaje
dice un dicho méxicano: no tiene la culpa el índio, sino quien lo hace compadre
+1
  #11 (permalink)  
Antiguo 30/06/2010, 13:08
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Ayuda !! Romper texto cada 50 caracteres

Hola

Ya sé que está solucionado pero mientra leía este post se me ocurrido esta otra manera. Es usando expresiones regulares
Código ASP:
Ver original
  1. strl = ""
  2. str = "El ácido acetilsalicílico se administra principalmente "& _
  3. "por vía oral, aunque también existe para uso rectal " & _
  4. "y como terapia intravenosa. Los comprimidos de aspirina " & _
  5. "para administración oral se hidrolizan con facilidad " & _
  6. "cuando se ven expuestos al agua o aire húmedo, de modo " & _
  7. "que deben permanecer almacenados en sus envoltorios " & _
  8. "hasta el momento de su administración"
  9.  
  10. Set objRegExp = new RegExp
  11. With objRegExp
  12. .Pattern ="([\wáéíóúÁÉÍÓÚñÑ\s\.,]{50}\b)"
  13. .IgnoreCase = True
  14. .Global = True
  15. End With
  16. strl = strl & objRegExp.replace(str, "$1<br />")
  17. Set objRegExp = nothing
  18.  
  19. Response.Write strl
__________________
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;" />

Última edición por Adler; 02/07/2010 a las 14:26 Razón: un error en la expesión

Etiquetas: caracteres
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 20:00.