<?xml version="1.0" encoding="UTF-8" ?> <sect1 id="specials"> <sect1info> <title >Erid ja sisseehitatud globaalsed muutujad</title> </sect1info> <title >Erid ja sisseehitatud globaalsed muutujad</title> <para >Erid on &kommander;i töödeldavad funktsioonid. Tuleks arvestada, et &kommander;i vana parsija kasutamisel käivitatakse esmalt kõik &kommander;i erid ja alles seejärel skript. Enamasti ei kujuta see endast probleemi, kuid igatahese tasuks see kõrva taha panna. </para> <note ><para >Alltoodud nimekiri on mõnevõrra aegunud. Saadaolevate funktsioonide kohta teabe hankimiseks on soovitatav kasutada <guilabel >funktsioonibrauserit</guilabel >. <guilabel >Funktsioonibrauseri</guilabel > saab avada <guilabel >Kommanderi tekst</guilabel >iredaktoris, klõpsates nupule <guilabel >Funktsioon...</guilabel > </para> </note> <variablelist> <varlistentry> <term ><function >@dcop(<parameter >appId</parameter >, <parameter >objekt</parameter >, <parameter >funktion</parameter >, <parameter >argumendid</parameter >)</function ></term> <listitem> <para >Sooritab &DCOP; väljakutse. @dcop(<quote >kmail</quote >, <quote >KMailIface</quote >, <quote >checkMail()</quote >, <quote ></quote >) </para> </listitem> </varlistentry> <varlistentry> <term ><function >@dcopid</function ></term> <listitem> <para >Protsessi &DCOP; ID. (kmdr-executor-@pid) </para> </listitem> </varlistentry> <varlistentry> <term ><function >@dialog(<parameter >dialoog</parameter >[,<parameter >parameetrid</parameter >])</function ></term> <listitem> <para >Käivitab määratud Kommanderi dialoogi. Seda otsitakse esmalt dialoogi ja seejärel aktiivses kataloogis. Sellega kutsutakse välja Executor ning määratakse vaikekataloogiks Kommanderi rakenduse kataloog. Parameetreid võib edastada UNIX-i tavapärasel viisil või siis anda nimega parameetrid, näiteks <quote >muutuja=väärtus</quote >. Edastatud parameetrid leiab seejärel globaalsest puhvrist. @global(muutuja) tagastab <quote >väärtuse</quote >. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@env(<parameter >keskkonnaMuutuja</parameter >)</function ></term> <listitem> <para >Kasutab määratud keskkonnamuutujat. @enc(PWD) näiteks kasutab $PWD. Arvesta, et <quote >$</quote > kuulub shelli ja seda ei tohi siin pruukida. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@exec(<parameter >käsk</parameter >)</function ></term> <listitem> <para >Tagastab määratud käsu käivitamise väljundi. @exec(ls -l) </para> </listitem> </varlistentry> <varlistentry> <term ><function >@execBegin ... @execEnd</function ></term> <listitem> <para >Sama, mis <function >@exec</function >, kuid toetab ka mitmerealisi skripte. See on mõistlik mitmete skriptikeelte puhul. </para> <itemizedlist> <listitem ><para ><function >@execBegin(php)</function ></para ></listitem> <listitem ><para ><function >@execBegin</function >(#!/usr/bin/php)</para ></listitem> </itemizedlist> <para >Esimene kasutab <acronym >PHP</acronym > käivitatava faili nime. &kommander; otsib otsinguteelt (PATH) <application >php</application >-d ja kui ei leia, uurib, ega see pole &kommander;is määratud asuma kuskil mujal kui sinu otsinguteel. Kui mitte, siis antakse kasutajale teada, et seda ei leitud. Teine võimalus kasutab tavapärast <quote >kupatust</quote > (shebang), millel on omad plussid, kuid ka omad miinused. Kui sul on näiteks <acronym >PHP5</acronym > koopia asukohas <filename >/usr/local/bin</filename >, siis seda ei leita, sest otsitakse ainult asukohast <filename >/usr/bin</filename >. Seepärast on <quote >kupatuse</quote > kasutamine kahe otsaga asi ning eriti juhul, kui sa faile ja dialooge ka teistega jagada soovid, ei oleks seda mõttekas kasutada.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@global(<parameter >muutuja</parameter >)</function ></term> <listitem> <para >Kasutab määratud globaalse muutuja väärtust. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@null</function ></term> <listitem> <para >Tagastab nulli. Kui näiteks Kommander kontrollib käivitamisel tühja widgetText'i, väldib see vigu.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@parentPid</function ></term> <listitem> <para >Eellasprotsessi &PID;. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@pid</function ></term> <listitem> <para >Protsessi &PID;. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@readSetting(<parameter >võti</parameter >, <parameter >vaikeVäärtus</parameter >)</function ></term> <listitem> <para >loeb väärtuse failist <filename >kommanderrc</filename >. Vaata ka @writeSetting. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@selectedWidgetText</function ></term> <listitem> <para >Vidina valitud sisu, mis võib näidata enam kui üht väärtust, näiteks vidinate loendit. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@setGlobal(<parameter >muutuja</parameter >, <parameter >väärtus</parameter >)</function ></term> <listitem> <para >Määrab globaalsele muutujale antud väärtuse. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@widgetText</function ></term> <listitem> <para >Vidina sisu. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@writeSetting(<parameter >võti</parameter >, <parameter >väärtus</parameter >)</function ></term> <listitem> <para >kirjutab väärtuse faili <filename >kommanderrc</filename >. Kõik &kommander;i dialoogid kasutavad faili kommanderrc, igal dialoogil on selles oma lõik. </para> </listitem> </varlistentry> </variablelist> <sect2 id="arrays"> <title >Massiivifunktsioonide grupp</title> <variablelist> <varlistentry> <term ><function >@Array.values(<parameter >massiiv</parameter >)</function ></term> <listitem> <para >Tagastab massiivi kõigi väärtuste reavahetusmärkidega eraldatud loendi. Kasulik näiteks massiiviga tutvumisel.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.keys(<parameter >massiiv</parameter >)</function ></term> <listitem> <para >Tagastab massiivi kõigi võtmete reavahetusmärkidega eraldatud loendi.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.setValue(<parameter >massiiv</parameter >, <parameter >võti</parameter >, <parameter >väärtus</parameter >)</function ></term> <listitem> <para >Määrab massiivi elemendile võtme ja väärtuse. Kui massiivi ei ole, see luuakse.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.clear(<parameter >massiiv</parameter >)</function ></term> <listitem> <para >Eemaldab kõik elemendid massiivist.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.count(<parameter >massiiv</parameter >)</function ></term> <listitem> <para >Tagastab massiivi elementide arvu.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.value(<parameter >massiiv</parameter >,<parameter >võti</parameter >)</function ></term> <listitem> <para >Tagastab antud võtmega seostatud väärtuse.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.remove(<parameter >massiiv</parameter >,<parameter >võti</parameter >)</function ></term> <listitem> <para >Eemaldab antud võtmega elemendi massiivist.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.fromString(<parameter >massiiv</parameter >,<parameter >string</parameter >)</function ></term> <listitem> <para >Lisab stringi kõik elemendid massiivi. String peab olema kujul <emphasis >võti\tväärtus\n</emphasis >."</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.toString(<parameter >massiiv</parameter >,<parameter >string</parameter >)</function ></term> <listitem> <para >"Tagastab massiivi kõik elemendid kujul <emphasis >võti\tväärtus\n</emphasis >."</para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="files"> <title >Failifunktsioonide grupp</title> <variablelist> <varlistentry> <term ><function >@File.read(<parameter >fail</parameter >)</function ></term> <listitem> <para >Tagastab antud faili sisu.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@File.write(<parameter >fail</parameter ><parameter >string</parameter >)</function ></term> <listitem> <para >Salvestab antud stringi faili.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@File.append(<parameter >fail</parameter ><parameter >string</parameter >)</function ></term> <listitem> <para >Lisab antud stringi faili lõppu.</para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="strings"> <title >Stringifunktsioonide grupp</title> <variablelist> <varlistentry> <term ><function >@String.length(<parameter >string</parameter >)</function ></term> <listitem> <para >Tagastab sümbolite arvu stringis.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.contains(<parameter >string</parameter >,<parameter >alamstring</parameter >)</function ></term> <listitem> <para >Kontrollib, kas string sisaldab antud alamstringi.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.find(<parameter >string</parameter >)</function ></term> <listitem> <para >Tagastab alamstringi asukoha stringis või -1, kui seda ei leita."</para> <note ><para >Järgmises versioonis saab sellele lisada ka täisarvu, mis tähistab järgmise otsingu alguskohta.</para ></note> </listitem> </varlistentry> <varlistentry> <term ><function >@String.left(<parameter >string</parameter >, <parameter >täisarv</parameter >)</function ></term> <listitem> <para >Tagastab stringi esimesed n sümbolit.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.right(<parameter >string</parameter >, <parameter >täisarv</parameter >)</function ></term> <listitem> <para >Tagastab stringi viimased n sümbolit.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.mid(<parameter >string</parameter >, <parameter >täisarv start</parameter >, <parameter >täisarv end</parameter >)</function ></term> <listitem> <para >Tagastab stringi alamstringi alates antud asukohast.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.remove(<parameter >string</parameter >, <parameter >alamstring</parameter >)</function ></term> <listitem> <para >Eemaldab kõik antud alamstringid.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.replace(<parameter >string</parameter >, <parameter >alamstring find</parameter >, <parameter >alamstring replace</parameter >)</function ></term> <listitem> <para >Asendab kõik antud alamstringid antud asendusega.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.upper(<parameter >string</parameter >)</function ></term> <listitem> <para >Muudab stringi suurtäheliseks.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.lower(<parameter >string</parameter >)</function ></term> <listitem> <para >Muudab stringi väiketäheliseks.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.compare(<parameter >string</parameter >, <parameter >string</parameter >)</function ></term> <listitem> <para >Võrdleb kaht stringi. Tagastab 0, kui need on võrdsed, -1, kui esimene on madalam ja 1, kui esimene on kõrgem.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.isEmpty(<parameter >string</parameter >)</function ></term> <listitem> <para >Kontrollib, kas string on tühi.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.isNumber(<parameter >string</parameter >)</function ></term> <listitem> <para >Kontrollib, kas string on kehtiv arv.</para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="builtins"> <title >Sisseehitatud globaalsed muutujad</title> <para >Sisseehitatud globaalseid muutujaid saab kasutada nagu tavalisi globaalseid muutujaid, andes nende ees <function >@global</function >.</para> <variablelist> <varlistentry> <term ><function >@global(_KDDIR)</function ></term> <listitem> <para >Aktiivse dialoogi kataloog.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@global(_NIMI)</function ></term> <listitem ><para >Dialoogi nimi.</para ></listitem> </varlistentry> </variablelist> </sect2> </sect1>