Concaténation d'informations

L'action CONCAT et PREFIX l'action fournissent deux actions permettant de concaténer des informations dans un ensemble de règles.

CONCAT action

CONCAT concatène les informations à une variable utilisateur ou à une colonne du dictionnaire. La source peut être un opérande, un littéral ou une variable utilisateur. Par exemple, les fractions telles que ½ et ¼ peuvent être copiées dans une seule colonne du dictionnaire à l'aide de l'ensemble d'actions de modèle suivant :


^ | / | ^
COPY [1] temp
CONCAT [2] temp
CONCAT [3] temp
COPY temp {Fractions}

La colonne « {Fractions} » contient la fraction entière (½).

Les variables utilisateur sont le plus souvent utilisées avec CONCAT l'action pour former un champ. Si vous souhaitez copier deux directions avec des espaces (par exemple : EST OUEST) dans une seule colonne du dictionnaire, vous créez les actions suivantes :


D =T= "EAST"| D =T= "WEST" | T
COPY [1] temp
CONCAT " " temp
CONCAT [2] temp
COPY temp {StreetName}

Ce modèle teste les directions spécifiques EST et OUEST. Le premier opérande est copié dans la variable utilisateur temp. Le contenu de temp est désormais EAST. La ligne suivante concatène un espace à la variable temp. La seconde CONCAT ajoute WEST à la variable temp. La variable contient désormais EAST WEST. Ensuite, le contenu de temp est copié dans le champ du nom de rue.

Remarque : un littéral avec un seul espace est concaténé à la variable. Les mêmes résultats ne peuvent pas être obtenus en concaténant directement dans la colonne du dictionnaire. Les colonnes du dictionnaire sont nulles au moment de l'initialisation. L'ajout d'un espace ne modifie pas le contenu de la colonne et n'altère pas les actions futures.

CONCAT autorise les plages de sous-chaînes. Exemple :


CONCAT [1](3:-2) {StreetName}

De la position 3 à l'avant-dernière position du premier opérande est concaténée à la colonne du nom de rue de la colonne du dictionnaire.

CONCAT_A concatène l'abréviation standard à la place des données du jeton d'origine. La source ne peut être qu'un opérande. CONCAT_A autorise les plages de sous-chaînes. Cependant, la sous-chaîne fait référence à l'abréviation standard et non au jeton d'origine.

CONCAT_I concatène les initiales au lieu des données du jeton d'origine. Vous pouvez utiliser CONCAT_I comme action POST où la source doit être une colonne de dictionnaire et la cible doit être une colonne de dictionnaire.

CONCAT_I, lorsqu'il n'est pas utilisé comme action POST , autorise les plages de sous-chaînes avec la sous-chaîne faisant référence aux initiales et non au jeton d'origine. Dans la plupart des cas, il n'y a qu'une seule initiale, mais pour les chaînes à plusieurs jetons, telles que John Henry Smith, les initiales sont JHS, et les plages de sous-chaînes autres que (1:1) ont un sens.

En savoir plus sur l'action CONCAT et les espaces : lorsque la source est une variable utilisateur, l'action CONCAT conserve les espaces dans le jeton. Lorsque la source est un opérande, l'action CONCAT ne conserve pas les espaces dans le jeton.

CONCAT ne permet pas de conserver les espaces entre les jetons correspondant à l'un ou l'autre ? ou ** dans une instruction de modèle (telle que COPY_S l'action ). Pour conserver les espaces entre les jetons, vous devez utiliser COPY_S l'action pour copier les jetons dans une variable utilisateur, puis préfixer ou concaténer cette variable utilisateur. Pour sélectionner le texte à mettre en évidence dans une ligne de saisie, reportez-vous aux exemples suivants :

Tableau 1. Exemples de copie de jetons dans des variables utilisateur
Lignes dans un ensemble d'actions de modèle Description
+=« VOIR » | ** ; grab "SEE JOHN DOE"
COPIER [1] temp ; put "SEE" in user variable temp
CONCAT " " temp ; add a space to the end of user variable temp
COPY_S [2] temp2 ; put "JOHN DOE" (including space) in temp2
CONCAT temp2 temp ; concat temp2 onto temp
COPIER temp {AdditionalNameInformation} ; put "SEE JOHN DOE" into column AdditionalNameInformation

PREFIX action

L'action PREFIX ajoute des données au début d'une chaîne. La source de PREFIX peut être un opérande, un littéral ou une variable utilisateur. La cible peut être une variable utilisateur ou une colonne de dictionnaire.


COPY "CHARLES" temp
PREFIX "SAINT" temp

Dans l'exemple précédent, la variable temp contient SAINTCHARLES.

PREFIX autorise les plages de sous-chaînes. Par exemple, dans l'exemple suivant :


PREFIX [1](3:-2) {StreetName}

De la position 3 à l'avant-dernière position du premier opérande est préfixé à la colonne du nom de rue.

PREFIX_A préfixe l'abréviation standard au lieu des données du jeton d'origine. La source doit être un opérande. PREFIX_A autorise les plages de sous-chaînes; toutefois, la sous-chaîne fait référence à l'abréviation standard et non au jeton d'origine.

PREFIX_I préfixe les initiales au lieu des données du jeton d'origine. Vous pouvez utiliser PREFIX_I comme action POST où la source doit être une colonne de dictionnaire et la cible doit être une colonne de dictionnaire.

PREFIX_I, lorsqu'il n'est pas utilisé comme action POST , autorise les plages de sous-chaînes avec la sous-chaîne faisant référence aux initiales et non au jeton d'origine. Dans la plupart des cas, il n'y a qu'une seule initiale, mais pour les chaînes à plusieurs jetons, telles que John Henry Smith, les initiales sont JHS, et les plages de sous-chaînes autres que (1:1) ont un sens.

En savoir plus sur l'action PREFIX et les espaces : lorsque la source est une variable utilisateur, l'action PREFIX conserve les espaces dans le jeton. Lorsque la source est un opérande, l'action PREFIX ne conserve pas les espaces dans le jeton.

PREFIX ne vous permet pas de conserver les espaces entre les jetons correspondant à l'un ou l'autre ? ou ** dans une instruction de modèle telle que COPY_S l'action. Pour conserver les espaces entre les jetons, vous devez utiliser COPY_S pour copier les jetons dans une variable utilisateur et le préfixe ou concaténer cette variable utilisateur. Reportez-vous à l'exemple précédent d'ensemble de modèles et d'actions.