Comment : |
Langages disponibles : reporting, Maintain
La fonction PARAG divise une chaîne de caractères en sous-chaînes en les marquant avec un délimiteur. Elle scanne un nombre spécifique de caractères depuis le début de la chaîne et remplace le dernier espace dans le groupe scanné avec le délimiteur, créant ainsi une première chaîne, aussi appelée ajoute Il balaye le prochain groupe de caractères de la ligne, à partir d'un délimiteur, et remplace son dernier espace avec un second délimiteur, créant un second jeton. Elle réitère ce processus jusqu'à à la fin de la ligne.
Une fois que tous les jetons ont été marqués par le délimiteur, vous pouvez utiliser la fonction GETTOK pour placer les jetons dans divers champs (voir GETTOK : Extraire une sous-chaîne (Jeton)). Si PARAG ne trouve pas d'espace dans le groupe scanné, elle remplace le premier caractère après du groupe avec le délimiteur. Par conséquent, assurez-vous que tous les groupes de caractères ont au moins un espace. Le nombre de caractères scannés fournit en tant que taille maximum de jeton.
Par exemple, si vous avez un champ appelé sous-titre qui contient une grande quantité de texte contenant des mots séparés par des espaces, vous pouvez couper le champ en sous-chaînes plus ou moins égales en spécifiant une taille de jetons maximale pour diviser le champ. Si le champ a une longueur de 350 caractères, divisez-la en trois sous-chaîne en spécifiant une taille de jeton maximale de 120 caractères. Cette technique permet d'imprimer des lignes de texte dans le paragraphe.
Conseil : si vous divisez les lignes en partie égales, vous pouvez créer plus de lignes substituts que vous ne le souhaitiez. Par exemple, supposons que vous divisez 120 caractères de lignes de texte en deux lignes de 60 caractères au maximum, mais une seule ligne est divisé de façon que la première sous ligne est de 50 caractères et la deuxième est de 55. Cela laisse place à une troisième sous-ligne de 15 caractères. Pour corriger cette situation, insérer un espace (à l'aide de faibles concaténation) au début de la sous-ligne, puis ajoutez celle-ci (à forte concaténation) à la fin de celui dont il est saisi. Remarquez que sous-ligne sera plus longue de 60 caractères.
PARAG(length, source_string, 'delimiter', max_token_size, output)
où :
Entier
est le nombre de caractère dans source_string et output, ou dans un champ contenant la longueur.
Alphanumérique
est la chaîne à diviser en jetons encadrée par des guillemets simples, ou un champ ou une variable contenant texte.
Alphanumérique
est le séparateur entouré par des guillemets simples. Choisissez un caractère qui ne figure pas dans le texte.
Entier
est la limite haute pour la taille de chaque jeton.
Alphanumérique
est le champ qui contient le résultat, ou le format de la valeur de sortie entre guillemets simples.
PARAG divise ADDRESS_LN2 en des lignes plus petites inférieures à dix caractères utilisant une virgule comme séparateur. Le résultat est ensuite stocké dans 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 sortie est :
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 |