×
Han Kortekaas tijdelijk afwezig (30 nov 2021)

Beste mensen,

Han Kortekaas, lid van het Aldfaer-team en moderator van dit forum, kan hier de komende maanden helaas niet actief zijn. Gedurende die tijd nemen de andere leden van ons team zijn taken over.

Met vriendelijke groet,
Anne van der Ploeg
Aldfaer-team

variabele

Meer
24 nov 2021 21:56 - 24 nov 2021 21:59 #43279 door Francke
variabele werd gestart door Francke
_VARDEF(_lengte)
_VARIN(_lengte, 6)
_SETDEF(opbreek)

_SETFILL(opbreek, [:Amsterdam:], 6) geeft Amster dam, 2 losse strings zoals verwacht
_SETFILL(opbreek, [:Amsterdam:], _lengte) geeft Amst e rdam, 3 losse strings

_SETSPLICE(opbreek, [:Amsterdam:], 6) geeft Amster dam, 2 losse strings zoals verwacht
_SETSPLICE(opbreek, [:Amsterdam:], _lengte) geeft Ams rdam, 2 losse strings


Waarom geven beide regels code met de variabele _lengte andere uitkomsten?
Hoe krijg ik de regel met de variabele _lengte ook met de goede uitkomst?

PS
de output gaat als volgt:

eerste deel: _SETEXP(opbreek, 1, _SETSTRI)
laatste deel: _SETEXP(opbreek, 0, _SETSTRI)

_SETBEGI(opbreek )
(_NUMB) _SETSTRI
_SETEND
Laatst bewerkt 24 nov 2021 21:59 door Francke.

Gelieve Inloggen of een account aanmaken om deel te nemen aan het gesprek.

Meer
24 nov 2021 22:39 #43281 door Han Kortekaas
Beantwoord door Han Kortekaas in topic variabele
Waarom schrijft u [:Amsterdam:] in plaats van "Amsterdam" Amsterdam in uw geval is een functienaam en niet een string.

Om de variabele _lengte uit te lezen moet u _VAROUT(_lengte,"0") gebruiken.

Zie Handleiding sjablonen

Gelieve Inloggen of een account aanmaken om deel te nemen aan het gesprek.

Meer
24 nov 2021 22:59 #43283 door Francke
Beantwoord door Francke in topic variabele
_SETFILL(opbreek, "Amsterdam", _VAROUT(_lengte,"0"))

geeft een berg foutmeldingen.
Waarschuwing - SETFILL_test.asj [6]: Verwacht ) in plaats van (. Het openingshaakje staat op regel 6 na token _SETFILL

Waarschuwing - SETFILL_test.asj [6]: Verwacht ) in plaats van (. Het openingshaakje staat op regel 6 na token _SETFILL
(_lengte,"0"))

_SETFILL(opbreek, "Amsterdam", [:_VAROUT(_lengte,"0"):])
geeft:
eerste deel: Amsterdam
laatste deel: Amsterdam

(1) Amsterdam

ook niet wat ik bedoelde.

Gelieve Inloggen of een account aanmaken om deel te nemen aan het gesprek.

Meer
25 nov 2021 00:58 - 25 nov 2021 00:59 #43285 door Paul Kallenberg
Beantwoord door Paul Kallenberg in topic variabele
Wat er gebeurt is het volgende:

1. _SETFILL(opbreek, "Amsterdam", _lengte). Het derde argument wordt gezien als de separator. De string Amsterdam wordt opgesplitst, waarbij een deel eindigt zodra een van de letters in de separator-string _lengte wordt gevonden. Dat levert in dit voorbeeld dus drie delen op:
Amst ; de letters A, m ,s komen niet voor in _lengte en t komt er wel in voor
e ; e komt voor in _lengte
rdam ; de letters r, d, a en m komen niet voor in _lengte.

2. _SETFILL(opbreek, "Amsterdam", [:_VAROUT(_lengte):]). Het derde argument wordt eerst geëvalueerd en dit levert 6 op. Maar deze 6 wordt niet als een getal, maar als een tekst geïnterpreteerd, met als gevolg dat de separator nu "6" is. Aangezien het teken 6 niet in Amsterdam voorkomt, is het resultaat één string, Amsterdam.
Dit blijkt b.v. hieruit: _SETFILL(opbreek, "Am6terdam", [:_VAROUT(_lengte):]) levert twee strings op: Am6 en terdam.

Kortom, er is niet voorzien in de mogelijkheid om via een variabele een getal als derde argument mee te geven.

Paul
Laatst bewerkt 25 nov 2021 00:59 door Paul Kallenberg.

Gelieve Inloggen of een account aanmaken om deel te nemen aan het gesprek.

Meer
25 nov 2021 08:42 #43287 door Francke
Beantwoord door Francke in topic variabele
Dank voor je antwoord, ik had zo'n vermoeden dat het in die richting gezocht moest worden.
Jammer dat het niet kan, geldt dit ook voor de parameter die met _FUNCBEGI kan worden meegegeven?
Wordt dit euvel te zijner tijd gerepareerd?

Gelieve Inloggen of een account aanmaken om deel te nemen aan het gesprek.

Meer
25 nov 2021 09:45 #43288 door Paul Kallenberg
Beantwoord door Paul Kallenberg in topic variabele
Geldt dit ook voor de parameter die met _FUNCBEGI kan worden meegegeven?

Het onderstaande werkt ook niet zoals je zou willen:

_VARDEF(_lengte)
_VARIN(_lengte, 6)
_SETDEF(opbreek)
mijnOpbreek("Amsterdam",[:_VAROUT(_lengte):])
_SETBEGI(opbreek )
(_NUMB) _SETSTRI
_SETEND

_FUNCBEGI(mijnOpbreek, tekst, n)
_SETFILL(opbreek, tekst, n):.
_FUNCEND

Wordt dit euvel te zijner tijd gerepareerd?

Ik zet het op de lijst.

Paul

Gelieve Inloggen of een account aanmaken om deel te nemen aan het gesprek.

Meer
25 nov 2021 11:32 #43291 door Francke
Beantwoord door Francke in topic variabele
Bedankt dat zou mooi.
Uit de handleiding blijkt niet dat _FUNCBEGI meer dan één parameter kan doorgeven, is er een maximum?

Gelieve Inloggen of een account aanmaken om deel te nemen aan het gesprek.

Meer
25 nov 2021 12:45 #43297 door Han Kortekaas
Beantwoord door Han Kortekaas in topic variabele
Uw opmerking kan ik niet plaatsen. Een _FUNCBEGI geeft het aantal elementen door afhankelijk wat die functie moet doen.

Gelieve Inloggen of een account aanmaken om deel te nemen aan het gesprek.

Meer
25 nov 2021 13:58 #43300 door Francke
Beantwoord door Francke in topic variabele
Sommige functies zijn strikt genormeerd wat hun parameters betreft, qua aantal en type, zoals dat het geval is bij _SETFILL.
Daarom vroeg ik me af of dit ook het geval is bij _FUNCBEGI voor wat betreft het aantal parameters.

Gelieve Inloggen of een account aanmaken om deel te nemen aan het gesprek.

Meer
25 nov 2021 14:18 #43301 door Paul Kallenberg
Beantwoord door Paul Kallenberg in topic variabele
Aan het aantal parameters van _FUNCBEGI zijn geen eisen gesteld.

Paul

Gelieve Inloggen of een account aanmaken om deel te nemen aan het gesprek.

Meer
25 nov 2021 14:22 #43302 door Francke
Beantwoord door Francke in topic variabele
oke, als eea gereapreerd is kunnen strings en getallen door elkaar worden gebruikt?

Gelieve Inloggen of een account aanmaken om deel te nemen aan het gesprek.

Meer
25 nov 2021 14:40 #43303 door Paul Kallenberg
Beantwoord door Paul Kallenberg in topic variabele
Dat zal in elk geval liggen aan het betreffende sjabloontoken. B.v. in _VARIN(x, n) moet het tweede argument een getal zijn, dat mag geen tekst zijn. _SETFILL is uitzonderlijk in de zin dat daarvan twee vormen met 3 argumenten zijn:
_SETFILL(set, tekst, separator) en _SETFILL(set, tekst, count). Daarbij wil je dat als het derde argument een getal is de tweede vorm wordt gebruikt en anders de eerste vorm. De parser zal dus zo slim gemaakt moeten worden dat hij dat verschil kan maken. Nu kan dat al bij _SETFILL(set, tekst, 6), dat herkent hij als getal, maar als het derde argument tussen [: en :] staat maakt hij er altijd tekst van. Dat zal dus aangepast moeten worden.

Paul

Gelieve Inloggen of een account aanmaken om deel te nemen aan het gesprek.

Gemaakt door Kunena