VaxNt/ProDB.PGuide.Mustr
Přiřazení je základní obrat na definici hodnoty proměnné. Existuje řada variant, z nichž vystačíme zejména s následujícími. Uvědomme si, že proměnné jsou vlastně složky TStringListu a uvnitř se na ně interpreter odkazuje jako na Context.Values['Promenna']. Z toho také plyne, že běžné proměnné nemají case sensitivní jména.
Funkce ArgList Popis ------------------------------------------------------------------------------------------------------------- set N,V,N,V,... do proměnné N dosadí hodnotu V a tak prochází postupně všechny dvojice argumentů. N jsou jména proměnných v aktuálním kontextu a V literály, ale i hodnoty získané dolarovou notací z jiných proměnných. set.trim N,V,N,V,... dtto, ale trimuje dosazované hodnoty setv N,M,N,M,... kopíruje zase po dvojicích systematicky hodnoty, vždy do N dosadí aktuální hodnotu M. Celý arglist může být zase prefixován vykřičníky a je tedy možno používat i dosti složitou indirekci context.set N=V varianta překonávající potíž s tím, že čárka je oddělovač, zde funguje jako set, ale odělovačem argumentů je rovnítko a druhý argument je jednoduše celý zbytek řádku ... _set alias pro context.set clear vyprázdní všechny proměnné příkazem Context.Clear ... clear.more N,N,... vyprázdní pouze vyjmenované proměnné příkazem Context.Values['N']:='' _clear alias pro clear.more ------------------------------------------------------------------------------------------------------------- Poznámky: 1.Díky dolarové notaci je možno používat i hodně divokou indirekci. Například "set !$(A),$(C)\n$(Q) znamená: vezmi hodnotu proměnné A chápej ji jako jméno proměnné do této proměnné dosaď konkatenovanou a řádkem oddělenou hodnotu proměnných C a Q 2.Hodnoty proměnných mohou obsahovat CRLF - ty jsou zakódovány pomocí \n. 3.Příkaz setv A,B je vlastně nahraditelný dvojící: push A pop B 4.Díky iteraci přes dlouhý arglist je možno na jednom řádku schovat velké množství akcí. Navíc je díky vyhodnocení zleva doprava možno v následných přiřazeních už ta, která proběhla právě před chvilkou. Příklady: set Prijmeni,Nowak,Jmeno,Aloys,Titul,Ing. set Dneska,$(Today) set !Pacient, $(Jmeno) $(Prijmeni) set !$(Zavod).Suma,$(X) setv A,Abylo,B,Bbylo,... set A,,B,,C,0, set Ted,$(DateTime)$(Random),Kdo,$(User),