Recent

Author Topic: Cortar una cadena o texto en 2 textos de x caracteres  (Read 1833 times)

daragor

  • Jr. Member
  • **
  • Posts: 66
    • Blog Webscom
Cortar una cadena o texto en 2 textos de x caracteres
« on: November 16, 2022, 04:14:05 pm »
Hola amigos, una pregunta... tengo un campo text en una base de datos sqlite, lo traigo y lo coloco en un tmemo de un form.. basicamente lo que quiero es poder dividir ese texto en 2 textos para poder optimizar un lazreport..

Por ejemplo si ese texto supera los 400 caracteres .. debería crear un 2do. texto con el resto... para asi tener 2 variables que no superen los caracteres y no se rompa el diseño de un reporte. espero se entienda!

* cabe aclarar que no se puede contar con un símbolo Delimitador! no hay

desde ya muchas gracias!
Inculcando el software libre.
https://www.webscom.com.ar

Edson

  • Hero Member
  • *****
  • Posts: 1302
Re: Cortar una cadena o texto en 2 textos de x caracteres
« Reply #1 on: November 16, 2022, 09:49:22 pm »
Hola.

¿Cuál sería el criterio para cortar el texto entonces? ¿Espacio en blanco? ¿Longitud máxima?

De acuerdo a eso, se implementa el código.

Saludos
Lazarus 2.2.6 - FPC 3.2.2 - x86_64-win64 on Windows 10

daragor

  • Jr. Member
  • **
  • Posts: 66
    • Blog Webscom
Re: Cortar una cadena o texto en 2 textos de x caracteres
« Reply #2 on: November 17, 2022, 11:36:06 am »
Estimado Edson, claro el criterio seria una determinada cant. de caracteres, puse de ej. 400

Por ahora lo implemente con un copy() para crear 2 cadenas...
Si el length del texto supera los 400... hago 2 copy(cadena,inicio,final)
1 que va desde copy(cadena,1,400) y el otro copy(cadena,401,length(cadena))

Me parece un poco rebuscado porq corta palabras y queda mal, quizás haya alguna opción mejor.
« Last Edit: November 17, 2022, 12:04:39 pm by daragor »
Inculcando el software libre.
https://www.webscom.com.ar

Edson

  • Hero Member
  • *****
  • Posts: 1302
Re: Cortar una cadena o texto en 2 textos de x caracteres
« Reply #3 on: November 17, 2022, 04:52:08 pm »
Podrías cortar por palabras, asumiendo que una palabra es todo aquello que está delimitado por espacios o los límites de la cadena. Luego partes tu texto en palabras y pones solo palabras completas que ocupen menos de los 400 caracteres que estás buscando (salvo que tengas una palabra de más de 400 caracteres).

Ese sería el acercamiento más simple. Ya luego puedes complicar más el algoritmo para considerar signos de puntuación u otros símbolos.
Lazarus 2.2.6 - FPC 3.2.2 - x86_64-win64 on Windows 10

 

TinyPortal © 2005-2018