<?xml version="1.0" encoding="UTF-8" ?> <sect1 id="specials"> <sect1info> <title >Specialvärden och inbyggda globala variabler</title> <authorgroup> <author ><firstname ></firstname > <surname ></surname > <affiliation ><address > <email ></email> </address ></affiliation> </author> <othercredit role="translator" > <firstname >Stefan</firstname > <surname >Asserhäll</surname > <affiliation ><address ><email >stefan.asserhall@comhem.se</email ></address ></affiliation > <contrib >Översättare</contrib ></othercredit > </authorgroup> </sect1info> <title >Specialvärden och inbyggda globala variabler</title> <para >Specialvärden är funktioner som behandlas av &kommander;. Du bör vara medveten om att ända till &kommander; har en fullständig tolk, kommer alla &kommander; specialvärden att utföras först och därefter körs skriptet. I det flesta fall är det inte något problem, men i några enstaka fall kan det vara det. </para> <variablelist> <varlistentry> <term ><function >@dcop(<parameter >pgmId</parameter >, <parameter >objekt</parameter >, <parameter >funktion</parameter >, <parameter >argument</parameter >)</function ></term> <listitem> <para >Gör ett &DCOP;-anrop, @dcop(<quote >kmail</quote >, <quote >KMailIface</quote >, <quote >checkMail()</quote >, <quote ></quote >) </para> </listitem> </varlistentry> <varlistentry> <term ><function >@dcopid</function ></term> <listitem> <para >&DCOP;-id för processen (kmdr-executor-@pid) </para> </listitem> </varlistentry> <varlistentry> <term ><function >@dialog(<parameter >dialogruta</parameter >[,<parameter >parametrar</parameter >])</function ></term> <listitem> <para >Startar angiven Kommander dialogruta. Dialogrutan letas efter i katalogen med dialogrutor och i arbetskatalogen, i den ordningen. Det här lägger till anropet till Executor i början och ändrar standardkatalog till den som Kommander programmet finns i. Parametrar kan skickas som vanligt i Unix, eller så kan namngivna parametrar som <quote >variabel=värde</quote > skickas. Därefter hittar du skickade parametrar i den globala uppsättningen. @global(variabel) skulle returnera <quote >värde</quote >. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@env(<parameter >miljövariabel</parameter >)</function ></term> <listitem> <para >Ersätts med den angivna miljövariabeln. @env(PWD) ersätts med $PWD. Kom ihåg att <quote >$</quote > ingår i skalet, och ska inte användas. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@exec(<parameter >kommando</parameter >)</function ></term> <listitem> <para >Returnerar utmatningen från körningen av det angivna kommandot. @exec(ls -l). </para> </listitem> </varlistentry> <varlistentry> <term ><function >@execBegin ... @execEnd</function ></term> <listitem> <para >Samma som <function >@exec</function >, men stöder inledning med "#!" och skript med flera rader. Det fungerar med diverse skriptspråk antingen genom att deklarera dem eller genom att använda "#!". </para> <itemizedlist> <listitem ><para ><function >@execBegin(php)</function ></para ></listitem> <listitem ><para ><function >@execBegin</function >#!/usr/bin/php</para ></listitem> </itemizedlist> <para >Det första exemplet använder namnet på det körbara programmet <acronym >PHP</acronym >. &kommander; söker i PATH efter <application >php</application > och om det inte hittas kontrollerar om det är registrerat i &kommander; på en plats som inte finns i sökvägen. Om inte får användaren reda på att det inte kan hittas. Det andra exemplet använder den klassiska inledningen <quote >!#</quote >, som både kan ha fördelar men också problem. Om du till exempel har en betaversion av <acronym >PHP5</acronym > i <filename >/usr/local/bin</filename > hittas den inte eftersom en annan hittas i <filename >/usr/bin</filename >, är det användbart. Om du dock distribuerar dialogrutan till någon som bara har <acronym >PHP</acronym > i <filename >/usr/local/bin</filename > hittas den inte med inledningen som används. Alltså varnas för att använda en inledning, och det rekommenderas att använda det körbara namnet om du delar filer.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@global(<parameter >variabel</parameter >)</function ></term> <listitem> <para >Ersätts med värdet på den angivna globala variabeln. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@null</function ></term> <listitem> <para >Returnerar null. Nu när Kommander kontrollerar om widgetText är tom vid körning, förhindrar detta felaktiga fel med fallet då en grafisk komponent har ett tillstånd som inte är angivet.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@parentPid</function ></term> <listitem> <para >Process-id för överliggande process. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@pid</function ></term> <listitem> <para >Process-id för processen. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@readSetting(<parameter >nyckel</parameter >, <parameter >förvalt värde</parameter >)</function ></term> <listitem> <para >Läser ett värde från <filename >kommanderrc</filename > </para> </listitem> </varlistentry> <varlistentry> <term ><function >@selectedWidgetText</function ></term> <listitem> <para >Det markerade innehållet i en grafisk komponent som kan visa mer än ett värde, som listkomponenter. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@setGlobal(<parameter >variabel</parameter >, <parameter >värde</parameter >)</function ></term> <listitem> <para >Tilldelar den globala variabeln det angivna värdet. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@widgetText</function ></term> <listitem> <para >Innehållet i en grafisk komponent. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@writeSetting(<parameter >nyckel</parameter >, <parameter >värde</parameter >)</function ></term> <listitem> <para >Skriv värde till <filename >kommanderrc</filename >. </para> </listitem> </varlistentry> </variablelist> <sect2 id="arrays"> <title >Fältfunktionsgruppen</title> <variablelist> <varlistentry> <term ><function >@Array.values(<parameter >fält</parameter >)</function ></term> <listitem> <para >Returnerar en lista åtskild med nyrader med alla värden i fältet. Kan användas för att gå igenom ett fält.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.keys(<parameter >fält</parameter >)</function ></term> <listitem> <para >Returnerar en lista med alla nycklar i fältet åtskilda med nyrader.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.setValue(<parameter >fält</parameter >, <parameter >nyckel</parameter >, <parameter >värde</parameter >)</function ></term> <listitem> <para >Anger en nyckel och värde för ett element i ett fält. Om fältet inte finns, skapas det.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.clear(<parameter >fält</parameter >)</function ></term> <listitem> <para >Ta bort alla element från fältet.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.count(<parameter >fält</parameter >)</function ></term> <listitem> <para >Returnera antal element i fältet.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.value(<parameter >fält</parameter >,<parameter >nyckel</parameter >)</function ></term> <listitem> <para >Returnera värdet som hör ihop med den givna nyckeln.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.remove(<parameter >fält</parameter >,<parameter >nyckel</parameter >)</function ></term> <listitem> <para >Ta bort elementet med den givna nyckeln från fältet.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.fromString(<parameter >fält</parameter >,<parameter >sträng</parameter >)</function ></term> <listitem> <para >Lägger till alla element i strängen till fältet. Strängen ska har formatet <emphasis >nyckel\tvärde\n</emphasis >.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.toString(<parameter >fält</parameter >,<parameter >sträng</parameter >)</function ></term> <listitem> <para >Returnerar alla element i fältet på formatet <emphasis >nyckel\tvärde\n</emphasis >.</para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="files"> <title >Filfunktionsgruppen</title> <variablelist> <varlistentry> <term ><function >@File.read(<parameter >fil</parameter >)</function ></term> <listitem> <para >Returnera innehållet i den givna filen.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@File.write(<parameter >fil</parameter >,<parameter >sträng</parameter >)</function ></term> <listitem> <para >Skriv given sträng till en fil.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@File.append(<parameter >fil</parameter >,<parameter >sträng</parameter >)</function ></term> <listitem> <para >Skriv given sträng i slutet på en fil.</para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="strings"> <title >Strängfunktionsgruppen</title> <variablelist> <varlistentry> <term ><function >@String.length(<parameter >sträng</parameter >)</function ></term> <listitem> <para >Returnera antalet tecken i strängen.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.contains(<parameter >sträng</parameter >,<parameter >delsträng</parameter >)</function ></term> <listitem> <para >Kontrollera om strängen innehåller en given delsträng.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.find(<parameter >sträng</parameter >)</function ></term> <listitem> <para >Returnera en delsträngs position i strängen, eller -1 om den inte hittas.</para> <note ><para >Det här kommer att ha ett valfritt heltal med startposition, för användning för att söka igen i version alfa 6.</para ></note> </listitem> </varlistentry> <varlistentry> <term ><function >@String.left(<parameter >sträng</parameter >, <parameter >heltal</parameter >)</function ></term> <listitem> <para >Returnerar de första n tecknen i strängen.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.right(<parameter >sträng</parameter >, <parameter >heltal</parameter >)</function ></term> <listitem> <para >Returnerar de sista n tecknen i strängen.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.mid(<parameter >sträng</parameter >, <parameter >heltal start</parameter >, <parameter >heltal slut</parameter >)</function ></term> <listitem> <para >Returnerar en delsträng av strängen, med början på angiven position.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.remove(<parameter >sträng</parameter >, <parameter >delsträng</parameter >)</function ></term> <listitem> <para >Ta bort alla förekomster av en given delsträng.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.replace(<parameter >sträng</parameter >, <parameter >delsträng sök</parameter >, <parameter >delsträng ersätt</parameter >)</function ></term> <listitem> <para >Ersätt alla förekomster av en given delsträng med en given ersättning.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.upper(<parameter >sträng</parameter >)</function ></term> <listitem> <para >Konvertera strängen till stora bokstäver.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.lower(<parameter >sträng</parameter >)</function ></term> <listitem> <para >Konvertera strängen till små bokstäver.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.compare(<parameter >sträng</parameter >, <parameter >sträng</parameter >)</function ></term> <listitem> <para >Jämför två strängar. Returnera 0 om de är lika, -1 om den första är tidigare, 1 om den första är senare.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.isEmpty(<parameter >sträng</parameter >)</function ></term> <listitem> <para >Kontrollera om strängen är tom.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.isNumber(<parameter >sträng</parameter >)</function ></term> <listitem> <para >Kontrollera om strängen är ett giltigt tal.</para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="builtins"> <title >Inbyggda globala variabler</title> <para >Inbyggda globala variabler kan kommas åt precis som vanliga globala variabler med <function >@global</function >.</para> <variablelist> <varlistentry> <term ><function >@global(_KDDIR)</function ></term> <listitem> <para >Katalogen den nuvarande dialogrutan är i.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@global(_NAME)</function ></term> <listitem ><para >Dialogrutans namn</para ></listitem> </varlistentry> </variablelist> </sect2> </sect1>