$slice

Utilisation: $slice(nom,début,fin[,séparateur])
Catégorie: multi-valeur
Mis en œuvre: Picard 2.3

La description:

Renvoie une variable à valeurs multiples contenant les éléments de l’index début jusqu’à mais sans inclure l’index fin de la variable à valeurs multiples nom. Une valeur littérale représentant une valeur multiple peut être remplacée par nom, en utilisant le séparateur (ou un point-virgule suivi d’un espace « ;  » s’il n’est pas passé) pour contraindre la valeur à une valeur multiple appropriée variable.

Les index sont basés sur zéro. Les nombres négatifs seront comptés à partir du nombre d’éléments de la liste. Si les index début ou fin sont laissés vides, ils seront par défaut à 0 et au nombre d’éléments dans la liste respectivement.

Une utilisation typique pourrait être de créer une variable à valeurs multiples avec tous les artistes dans %artists% sauf le premier, qui peut être utilisé pour créer un « feat. » liste. Cela ressemblerait à quelque chose comme $setmulti(support_artists,$slice(%artists%,1,)).

Exemple:

Les instructions suivantes renverront les valeurs indiquées:

$set(foo,A; B; C; D; E)
$slice(%foo%,1)                        ==>  ""

$setmulti(foo,A; B; C; D; E)
$slice(%foo%,1)                        ==>  "B; C; D; E"

$slice(A; B; C; D; E,1)                ==>  "B; C; D; E"
$slice(A; B; C; D; E,1,3)              ==>  "B; C"
$slice(A; B; C; D; E,,3)               ==>  "A; B; C"
$slice(A; B; C; D; E,1,3)              ==>  "B; C"
$slice(A; B; C; D; E,1,-1)             ==>  "B; C; D"
$slice(A; B; C; D; E,-4,4)             ==>  "B; C; D"
$slice(A:A; B:B; C:C; D:D; E:E,,1,:)   ==>  "A"
$slice(A:A; B:B; C:C; D:D; E:E,-2,,:)  ==>  "D; E:E"
$slice(A:A; B:B; C:C; D:D; E:E,2,4,:)  ==>  "B; C:C; D"