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.
PARAG(length, source_string, 'delimiter', max_token_size, output)
onde:
Inteiro
É o número de caracteres da source_string e output ou um campo que contém o comprimento.
Alfanumérico
É uma string a ser divida em tokens entre aspas simples ou um campo ou variável que contém o texto.
Alfanumérico
É o delimitador entre aspas simples. Escolha um caractere que não apareça no texto.
Inteiro
É o limite superior do tamanho de cada token.
Alfanumérico
É o nome do campo que contém o resultado ou o formato do valor de saída posto entre aspas simples.
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 |