GETTOK : Extraire une sous-chaîne (Jeton)

Comment :

Langages disponibles : reporting, Maintain

La fonction GETTOK divise une chaîne de caractères en sous-chaînes, appelés jetons. Un caractère spécifique, appelé un délimiteur, se produit dans la chaîne et sépare la chaîne en jetons. GETTOK renvoie le jeton spécifié par l'argument token_number. GETTOK ignore les blancs à gauche et à droite dans la chaîne de caractères source.

Par exemple, supposons que vous voulez extraire le quatrième mot d'une phrase. Dans ce cas, utilisez le caractère espace en délimiteur et le nombre 4 pour token_number. GETTOK divise la phrase en mots utilisant ce délimiteur, puis extraits le quatrième mot. Si la chaîne n'est pas divisé par le délimiteur, utilisez la fonction PARAG à cet effet. Voir PARAG : Diviser un texte en petite lignes


Haut de page

x
Syntaxe : Extraire une sous-chaîne (jeton)
GETTOK(source_string, length, token#, 'delim', outlen, output)

où :

source_string

Alphanumérique

est la valeur de chaîne source dont le jeton va être extrait.

length

Entier

est le nombre de caractères du champ source_string. Si cet argument est égal ou inférieur à 0, la fonction renvoie les espaces.

token#

Entier

est le nombre de jetons à extraire. Si cet argument est positif, les jetons sont comptées de gauche à droite. Si cet argument est négatif, les jetons sont comptées de droite à gauche. Par exemple, -2 extrait le deuxième jeton à partir de la droite. Lorsque l'argument est 0, la fonction renvoie une chaîne d'espaces. Les jetons nuls de début et de fin sont ignorés.

'delim'

Alphanumérique

est le séparateur dans la chaîne parente entouré par des guillemets simples. Si vous spécifiez plus d'un caractère, seul le premier caractère est utilisé.

Remarque : dans le gestionnaire de dialogue, pour éviter la conversion d'un caractère espace délimiteur (' ') en un zéro en double précision, incluez un caractère non numérique après l'espace (par exemple, '%'). GETTOK utilise seulement le premier caractère (l'espace) en délimiteur, alors que le caractère supplémentaire (%) évite une conversion en double précision.

outlen

Entier

est la taille du jeton extrait. Si cet argument est égal ou inférieur à 0, la fonction renvoie les espaces. Si le jeton est de plus long que cet argument, il est tronqué; si il est plus court, elle est remplie par des espaces de droite.

output

Alphanumérique

est le champ qui contient le résultat, ou le format de la valeur de sortie entre guillemets simples. Le séparateur n'est pas inclus dans le jeton.

Notez que le délimiteur n'est pas inclus dans le jeton extrait.



Exemple : Extraire un jeton

GETTOK extraits le dernier jeton de ADDRESS_LN3; le résultat est stocké dans LAST_TOKEN :

Le délimiteur est un espace.

TABLE FILE EMPLOYEE
PRINT ADDRESS_LN3 AND COMPUTE
LAST_TOKEN/A10 = GETTOK(ADDRESS_LN3, 20, -1, ' ', 10, LAST_TOKEN);
AS 'LAST TOKEN,(ZIP CODE)'
WHERE TYPE EQ 'HSM';
END

La sortie est :

                      LAST TOKEN
ADDRESS_LN3           (ZIP CODE)
-----------           ----------
RUTHERFORD NJ 07073   07073
NEW YORK NY 10039     10039
FREEPORT NY 11520     11520
NEW YORK NY 10001     10001
FREEPORT NY 11520     11520
ROSELAND NJ 07068     07068
JERSEY CITY NJ 07300  07300
FLUSHING NY 11354     11354

WebFOCUS