Macro .foreach_part

Cette macro procède à l'itération sur la partie du template en entrée spécifiée comme premier argument de la macro. Le template spécifié dans le bloc est converti pour chaque partie de l'entrée.

.foreach_part (input [,"motif-séparateur" [,en-tête [,fin]]])
	template-simple
.next[(séparateur)]

Cette macro crée une nouvelle portée dans laquelle la variable locale CurrentPart est définie comme la i-ème partie du template en entrée à l'itération i. La variable locale Separator contient le séparateur suivant.

Cette macro est particulièrement utile lorsque vous travaillez sur les conventions de dénomination.

Pour plus d'informations les conventions de dénomination, voir "Conventions de dénomination" dans le chapitre Modèles du Guide des fonctionnalités générales.

Les paramètres suivants sont disponibles :

Paramètre

Description

entrée

Texte en entrée sur lequel l'itération est effectuée

Type : Template simple

motif-séparateur

Séparateurs de caractères et de mots


  • Tout caractère spécifié dans le motif peut être utilisé comme séparateur

  • [<c1> - <c2>] spécifie un caractère au sein de la plage définie entre les caractères <c1> et <c2>

Par exemple, le motif suivant " -_,[A-Z]" spécifie que chaque partie peut être séparée par un espace, un tiret, un trait de soulignement, une virgule ou un caractère compris entre A et Z (majuscule).

Par défaut, le <motif-séparateur> est initialisé avec le motif (). Si le motif spécifié est vide, le motif est initialisé à l'aide de la valeur par défaut.

Un séparateur >séparateur> peut être concaténé entre chaque partie. Les expressions <en-tête> et <fin> peuvent être ajoutées respectivement au début ou à la fin de l'expression générée.

Il existe deux types de séparateur :


  • Séparateur de caractères : pour chaque séparateur de caractères, le séparateur spécifié dans la prochaine instruction de la macro est renvoyé (même pour des séparateurs consécutifs)

  • Séparateur de mots : ils sont spécifiés en tant qu'intervalles, par exemple [A-Z] spécifie que toutes les lettres majuscules sont des séparateurs. Pour un séparateur de mots, aucun séparateur (spécifié dans la prochaine instruction) n'est renvoyé

Valeur par défaut : " -_,\t"

Type : Texte

en-tête

[facultatif] Généré avant le résultat, s'il y en a un

Type : Texte

fin

[facultatif] Ajouté au résultat, s'il y en a un

Type : Texte

template-simple

Template à appliquer à chaque partie.

Type : Template complexe

séparateur

[facultatif] Généré entre évaluations non vides de template-complexe

Type : Texte

Exemples :

Convertit un nom en code de classe (conventions de dénomination Java). Dans l'exemple suivant, la variable %Name% équivaut à Employee shareholder', et est convertie en EmployeeShareholder :

.foreach_part (%Name%, " _-'")
	%.FU:CurrentPart%
.next

Convertit un nom en code d'attribut de classe (conventions de dénomination Java). Dans l'exemple suivant, la variable %Name% équivaut à Employee shareholder, et est convertie en EmployeeShareholder :

.set_value(_First, true, new)
.foreach_part(%Name%,"' _-'")
	.if (%_First%)
		%.L:CurrentPart%
		.set_value(_First, false, update)
	.else
		%.FU:CurrentPart%
	.endif
.next


Created October 8, 2009. Send feedback on this help topic to Sybase Technical Publications: pubs@sybase.com