$slice

Gebruik: $slice(naam,begin[,eind[,scheidingsteken]])
Categorie: meervoudig
Geïmplementeerd: Picard 2.3

Beschrijving:

Retourneert een meervoudige variabele met elementen vanaf de positie begin tot (maar niet tot en met) de positie eind uit de meervoudige variabele naam. In plaats van naam kan je ook een tekenreeks opgegeven, zodat deze tekenreeks in een meervoudige variabele wordt omgezet. Je kan het scheidingsteken voor deze tekenreeks opgeven met de derde parameter (als je deze parameter niet opgeeft, wordt ‘; ’ gebruikt).

Het tellen begint bij nul. Negatieve getallen worden terug geteld vanaf het aantal elementen in de lijst. Als begin of eind leeg wordt gelaten, worden respectievelijk 0 en het aantal elementen in de lijst gebruikt.

Je kan dit bijvoorbeeld gebruiken om een meervoudige variabele te maken met alle artiesten in %artists% behalve de eerste artiest, zodat je een lijst met gastartiesten kan maken. Dat zou er zo uit kunnen zien: $setmulti(gastartiesten,$slice(%artists%,1)).

Voorbeeld:

De volgende instructies retourneren de aangegeven waarden:

$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"