<?xml version="1.0" encoding="UTF-8" ?> <sect1 id="specials"> <sect1info> <title >Specielle og indbyggede globale variable</title> <authorgroup> <author ><firstname ></firstname > <surname ></surname > <affiliation ><address > <email ></email> </address ></affiliation> </author> &rune.laursen.role; </authorgroup> </sect1info> <title >Specielle og indbyggede globale variable</title> <para >Specielle er funktioner der behandles af &kommander;. Du skal være opmærksom på at indtil &kommander; har en fuldstændig fortolker, vil alle specielle eksekveres først og derefter eksekveres scriptet. I de fleste tilfælde er dette ikke et problem, men somme tider opstår der problemer. </para> <variablelist> <varlistentry> <term ><function >@dcop(<parameter >appId</parameter >, <parameter >objekt</parameter >, <parameter >funktion</parameter >, <parameter >argumenter</parameter >)</function ></term> <listitem> <para >Lav et &DCOP;-kald. @DCOP(<quote >kmail</quote >, <quote >KMailIface</quote >, <quote >checkMail()</quote >, <quote ></quote >) </para> </listitem> </varlistentry> <varlistentry> <term ><function >@dcopid</function ></term> <listitem> <para >Processens &DCOP;-ID (kmdr-executor-@pid) </para> </listitem> </varlistentry> <varlistentry> <term ><function >@dialog(<parameter >dialog</parameter >[,<parameter >parametre</parameter >])</function ></term> <listitem> <para >Starter den givne kommander-dialog. Dialogen søges i dialogkataloget og i det aktuelle katalog, i den rækkefølge. Dette kommer før kaldet til executoren og sætter standardkataloget til den Kommander-programmet findes i. Parametre kan overføres i sædvanlig UNIX-stil eller overføres som <quote >variabel=værdi</quote >. Du kan derefter finde overførte parametre i den globale samling. @global(variable) ville returnere <quote >værdi</quote >. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@env(<parameter >miljøVariabel</parameter >)</function ></term> <listitem> <para >Udvides til den givne miljøvariabel. @env(PWD) udvides til $PWD. Husk at <quote >$</quote > er en del af skallen og ikke må bruges. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@exec(<parameter >kommando</parameter >)</function ></term> <listitem> <para >returnerer uddata ved eksekveringen af den givne kommando @exec(ls -l). </para> </listitem> </varlistentry> <varlistentry> <term ><function >@execBegin ... @execEnd</function ></term> <listitem> <para >ligesom <function >@exec</function >, men understøtter shebang og multilinje scripter. Dette servicerer forskellige scriptsprog, enten ved at erklære dem eller ved at bruge en shebang. </para> <itemizedlist> <listitem ><para ><function >@execBegin(php)</function ></para ></listitem> <listitem ><para ><function >@execBegin</function >#!/usr/bin/php</para ></listitem> </itemizedlist> <para >Den første bruger navnet på <acronym >PHP</acronym >-kørbare. &kommander; søger i PATH efter <application >php</application > og ser efter et sted uden din sti, om den er registreret i &kommander; hvis ikke den findes. Hvis ikke før den brugeren opmærksom på at den ikke blev fundet. Det andet eksempel bruger den klassiske <quote >shebang</quote > som kan have nogle fordele og problemer. Hvis du har en betaudgave af <acronym >PHP5</acronym > i f.eks. <filename >/usr/local/bin</filename > som ikke ville blive fundet fordi der søges i <filename >/usr/bin</filename > er dette brugbart. Hvis du derimod distribuerer dialogen til en som kun har <acronym >PHP</acronym > i <filename >/usr/local/bin</filename > ville den ikke blive fundet når der bruges en shebang. Så at bruge shebang skal tages med forbehold og det anbefales at bruge den eksekverbare hvis du deler filer.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@global(<parameter >variabel</parameter >)</function ></term> <listitem> <para >udvides til værdien af den givne globale variabel. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@null</function ></term> <listitem> <para >Returnerer null. Nu da Kommander undersøger for tom widgetText på kørselstidspunktet, forebygger dette, fejlagtige fejl hvis en kontrol har en tilstand der ikke er sat.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@parentPid</function ></term> <listitem> <para >Forældreprocessens &PID;. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@pid</function ></term> <listitem> <para >Processens &PID;. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@readSetting(<parameter >nøgle</parameter >, <parameter >standardVærdi</parameter >)</function ></term> <listitem> <para >læser en værdi fra <filename >kommanderrc</filename > </para> </listitem> </varlistentry> <varlistentry> <term ><function >@selectedWidgetText</function ></term> <listitem> <para >det markerede indhold i en kontrol som kan vise mere end en værdi, som listekontroller </para> </listitem> </varlistentry> <varlistentry> <term ><function >@setGlobal(<parameter >variabel</parameter >, <parameter >værdi</parameter >)</function ></term> <listitem> <para >Sætter den globale variabel til den givne værdi. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@widgetText</function ></term> <listitem> <para >en kontrols indhold </para> </listitem> </varlistentry> <varlistentry> <term ><function >@writeSetting(<parameter >nøgle</parameter >, <parameter >værdi</parameter >)</function ></term> <listitem> <para >skriv værdi til <filename >kommanderrc</filename > </para> </listitem> </varlistentry> </variablelist> <sect2 id="arrays"> <title >Array-funktionsgruppe</title> <variablelist> <varlistentry> <term ><function >@Array.values(<parameter >array</parameter >)</function ></term> <listitem> <para >Returnerer EOL-adskilt liste af alle værdier i arrayet. Kan bruges til at gennemgå et array.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.keys(<parameter >array</parameter >)</function ></term> <listitem> <para >Returnerer en EOL-adskilt liste af alle nøgler i arrayet.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.setValue(<parameter >array</parameter >, <parameter >nøgle</parameter >, <parameter >værdi</parameter >)</function ></term> <listitem> <para >Sætter en nøgle og en værdi til et element i et array. Eksisterer der ikke et array i forvejen, oprettes der et.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.clear(<parameter >array</parameter >)</function ></term> <listitem> <para >Fjerner alle elementer i et array.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.count(<parameter >array</parameter >)</function ></term> <listitem> <para >Returnerer antallet af elementer i arrayet.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.value(<parameter >array</parameter >,<parameter >nøgle</parameter >)</function ></term> <listitem> <para >Returnerer værdie associeret med den givne nøgle.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.remove(<parameter >array</parameter >,<parameter >nøgle</parameter >)</function ></term> <listitem> <para >Fjern element med given nøgle fra arrayet.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.fromString(<parameter >array</parameter >,<parameter >streng</parameter >)</function ></term> <listitem> <para >Tilføjer alle elementer i strengen til arrayet. Strengen skal have formatet:<emphasis >nøgle\tværdi\n</emphasis >."</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.toString(<parameter >array</parameter >,<parameter >streng</parameter >)</function ></term> <listitem> <para >"Returnerer alle elementer i array i <emphasis >nøgle\tværdi\n</emphasis > format."</para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="files"> <title >Filfunktionsgruppe</title> <variablelist> <varlistentry> <term ><function >@File.read(<parameter >fil</parameter >)</function ></term> <listitem> <para >Returnerer indhold af den givne fil.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@File.write(<parameter >fil</parameter ><parameter >streng</parameter >)</function ></term> <listitem> <para >Skriv given streng til en fil.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@File.append(<parameter >fil</parameter ><parameter >streng</parameter >)</function ></term> <listitem> <para >Tilføj given streng til slutningen af en fil.</para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="strings"> <title >Strengfunktionsgruppe</title> <variablelist> <varlistentry> <term ><function >@String.length(<parameter >streng</parameter >)</function ></term> <listitem> <para >Returnerer antal tegn i strengen.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.contains(<parameter >streng</parameter >,<parameter >understreng</parameter >)</function ></term> <listitem> <para >Undersøger om strengen indeholder den givne understreng.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.find(<parameter >streng</parameter >)</function ></term> <listitem> <para >Returnerer en understrengs position i strengen eller -1 hvis den ikke findes."</para> <note ><para >Dette får en valgfri startposition angivet med et heltal til søgning efter næste, i alfa 6.</para ></note> </listitem> </varlistentry> <varlistentry> <term ><function >@String.left(<parameter >streng</parameter >, <parameter >heltalt</parameter >)</function ></term> <listitem> <para >Returnerer første n tegn i strengen.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.right(<parameter >streng</parameter >, <parameter >heltal</parameter >)</function ></term> <listitem> <para >Returnerer sidste n tegn i strengen.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.mid(<parameter >streng</parameter >, <parameter >heltal startposition</parameter >, <parameter >heltal slutposition</parameter >)</function ></term> <listitem> <para >Returnerer strengens understreng, begynder fra given position.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.remove(<parameter >streng</parameter >, <parameter >understreng</parameter >)</function ></term> <listitem> <para >Fjerner alle forekomster af den givne understreng.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.replace(<parameter >streng</parameter >, <parameter >understreng find</parameter >, <parameter >understreng erstat</parameter >)</function ></term> <listitem> <para >Erstatter alle forekomster af en given understreng med den givne erstatningsstreng.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.upper(<parameter >streng</parameter >)</function ></term> <listitem> <para >Konverterer strengen til store bogstaver.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.lower(<parameter >streng</parameter >)</function ></term> <listitem> <para >Konverterer strengen til små bogstaver.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.compare(<parameter >streng</parameter >, <parameter >streng</parameter >)</function ></term> <listitem> <para >Sammenligner to strenge. Returnerer 0, hvis de er ens, -1 hvis den første er mindst, 1 hvis den første er størst.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.isEmpty(<parameter >streng</parameter >)</function ></term> <listitem> <para >Undersøger om strengen er tom.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.isNumber(<parameter >streng</parameter >)</function ></term> <listitem> <para >Undersøger om strengen er et gyldigt tal.</para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="builtins"> <title >Indbyggede globale</title> <para >Indbyggede globale tilgås ligesom almindelige globale variable med <function >@global</function >.</para> <variablelist> <varlistentry> <term ><function >@global(_KDDIR)</function ></term> <listitem> <para >Katalogen den aktuelle dialog er i.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@global(_NAME)</function ></term> <listitem ><para >Navnet på dialogen</para ></listitem> </varlistentry> </variablelist> </sect2> </sect1>