PARAG: Como Dividir Texto em Linhas Menores

Como:

Linguagens Disponíveis: Reporting, Maintain

A função PARAG divide um string de caracteres em substrings marcando-as com um delimitador. Ela verifica um número específico de caracteres a partir do início da string e substitui o último espaço no grupo escaneado com o delimitador, criando assim uma primeira substring, também conhecida como token. Em seguida, ela escaneia o próximo grupo de caracteres na linha, começando pelo delimitador, e substitui o último espaço por um segundo delimitador, criando um segundo token. Este processo é repetido até o fim da linha.

Após cada token ser marcado pelo delimitador, você poderá utilizar a função GETOK para substituir os tokens em campos diferentes. Se a função PARAG não encontrar espaços no grupo escaneado, ela irá substituir o primeiro caractere que sucede o grupo por um delimitador. Portanto, certifique-se de que todos os grupos de caracteres possuem pelo menos um espaço. O número de caracteres escaneados é fornecido como o tamanho máximo do token.

Por exemplo, se você possuir um campo chamado 'subtítulo' que contém uma grande quantidade de texto com palavras separadas por espaços, é possível dividir o campo em substrings aproximadamente iguais especificando o tamanho máximo do token para dividir o campo. Se o campo possuir 350 caracteres, divida-o em três substrings especificando o tamanho máximo do token como 120 caracteres. Esta técnica permite que você imprima linhas de texto na forma de parágrafo.

Dica: No entanto, se você dividir as linhas igualmente, você pode criar mais sublinhas que o esperado. Por exemplo, suponha que você dividiu linhas de texto de 120 caracteres em duas de, no máximo, 60 caracteres, mas uma linha está dividida de tal forma que a primeira sublinha tenha 50 caracteres e a segunda, 55. Isto deixa um espaço para uma terceira sublinha de 15 caracteres. Para corrigir isto, insira um espaço (utilizando a concatenação fraca) no início da sublinha extra e, em seguida, anexe esta sublinha (utilizando a concatenação forte) ao final da sublinha anterior. Observe que a sublinha não terá mais do que 60 caracteres.


Topo da página

x
Sintaxe: Como Dividir Texto em Linhas Menores
PARAG(length, source_string, 'delimiter', max_token_size, output)

onde:

comprimento

Inteiro

É o número de caracteres da source_string e output ou um campo que contém o comprimento.

source_string

Alfanumérico

É uma string a ser divida em tokens entre aspas simples ou um campo ou variável que contém o texto.

delimitador

Alfanumérico

É o delimitador entre aspas simples. Escolha um caractere que não apareça no texto.

max_token_size

Inteiro

É o limite superior do tamanho de cada token.

saída

Alfanumérico

É o nome do campo que contém o resultado ou o formato do valor de saída posto entre aspas simples.



Exemplo: Dividir Texto em Linhas Menores

PARAG divide ADDRESS_LN2 em linhas menores até um máximo de dez caracteres, usando uma vírgula como delimitador. Em seguida, esta função armazena o resultado em 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

A saída é:

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.

Information Builders