PARAG: Cómo dividir textos en líneas más pequeñas

Cómo:

Idiomas disponibles: informes, Maintain

La función PARAG divide una cadena de caracteres en subcadenas, señalándolas con un delimitador. Examina un número específico de caracteres desde el principio de la cadena, y reemplaza el último espacio del grupo examinado por el delimitador, dando lugar a una primera subcadena, también denominada token. A continuación examina el próximo grupo de caracteres de la línea, empezando por el delimitador, y reemplaza el último espacio por otro delimitador, dando lugar al segundo token. El proceso se repite hasta que se llega al final de la línea.

Cuando el delimitador haya terminado de marcar todos los tokens, puede utilizar la función GETTOK para colocarlos en distintos campos (consulte GETTOK: Cómo extraer una subcadena (Token)). Si PARAG no encuentra espacios en el grupo examinado, reemplaza el primer carácter posterior al grupo del delimitador. Por tanto, asegúrese de que los grupos de caracteres presenten, al menos, un espacio. El número de caracteres examinado está proporcionado como tamaño máximo del token.

Por ejemplo, si tiene un campo llamado 'subtítulo' con una gran cantidad de texto, compuesto por palabras separadas mediante espacios, puede cortar el campo en subcadenas del mismo tamaño (aproximadamente) especificando el tamaño máximo del token, para dividir el campo. Si el campo tiene 350 caracteres de largo, divídalo en tres subcadenas, especificando un tamaño máximo de token de 120 caracteres. Esta técnica le permite imprimir líneas de texto con forma de párrafo.

Sugerencia: Si divide las líneas en partes iguales, puede generar más sublíneas de las deseadas. Por ejemplo, suponga que divide líneas de texto de 120 caracteres en dos líneas con un máximo de 60 caracteres, pero una de ellas está dividida de forma que la primera sublínea tiene 50 caracteres y la segunda, 55. Esto deja espacio para una tercera sublínea de 15 caracteres. Para corregir esta situación, inserte un espacio (mediante concatenación débil) al principio de la sublínea restante y, a continuación, añádala (mediante concatenación fuerte) al final de la línea que la precede. Tenga en cuenta que la sublínea tendrá más de 60 caracteres.


Principio de página

x
Sintaxis: Cómo Dividir textos en líneas más pequeñas
PARAG(length, source_string, 'delimiter', max_token_size, output)

donde:

length

Número entero

Es el número de caracteres en source_string y output, o un campo que contenga la longitud.

source_string

Alfanumérico

Es una cadena que se va a dividir en tokens, entre comillas simples, o un campo o variable que contiene el texto.

delimiter

Alfanumérico

Es el delimitador, entre comillas simples. Escoja un carácter que no aparezca en el texto.

max_token_size

Número entero

Es el límite superior de tamaño para cada token.

output

Alfanumérico

Es el nombre del campo que contiene el resultado, o el formato del valor de salida puesto entre comillas solas.



Ejemplo: Cómo dividir textos en líneas más pequeñas

PARAG divide ADRRESS_LN2 en líneas más pequeñas, de no más de 10 caracteres, con una coma como delimitador. Después, guarda el resultado en PARA_ADDR:

TABLE FILE EMPLOYEE
PRINT ADDRESS_LN2 AND COMPUTE
PARA_ADDR/A20 = PARAG(20, ADDRESS_LN2, ',', 10, PARA_ADDR);
BY LAST_NAME
WHERE TYPE EQ 'HSM';
END

La salida es:

LAST_NAME        ADDRESS_LN2           PARA_ADDR
---------        -----------           ---------
BANNING          APT 4C                APT 4C    ,
CROSS            147-15 NORTHERN BLD   147-15,NORTHERN,BLD
GREENSPAN        13 LINDEN AVE.        13 LINDEN,AVE.
IRVING           123 E 32 ST.          123 E 32,ST.       ,
JONES            235 MURRAY HIL PKWY   235 MURRAY,HIL PKWY
MCKNIGHT         117 HARRISON AVE.     117,HARRISON,AVE.
ROMANS           271 PRESIDENT ST.     271,PRESIDENT,ST.
SMITH            136 E 161 ST.         136 E 161,ST.

WebFOCUS