<?xml version="1.0" encoding="UTF-8" ?> <sect1 id="specials"> <sect1info> <title >Especiais e Variáveis Globais Incorporadas</title> <authorgroup> <author ><firstname ></firstname > <surname ></surname > <affiliation ><address > <email ></email> </address ></affiliation> </author> <othercredit role="translator" ><firstname >José</firstname ><surname >Pires</surname ><affiliation ><address ><email >zepires@gmail.com</email ></address ></affiliation ><contrib >Tradução</contrib ></othercredit > </authorgroup> </sect1info> <title >Especiais e Variáveis Globais Incorporadas</title> <para >Os especiais são funções que são processadas pelo &kommander;. Você deverá saber que, até o &kommander; ter um processador completo, todos os especiais do &kommander; serão executados primeiro e só então o programa será executado. Na maioria dos casos isto não será um problema, mas em alguns deles será. </para> <variablelist> <varlistentry> <term ><function >@dcop(<parameter >idApl</parameter >, <parameter >objecto</parameter >, <parameter >função</parameter >, <parameter >argumentos</parameter >)</function ></term> <listitem> <para >Faz uma chamada de &DCOP;. @dcop(<quote >kmail</quote >, <quote >KMailIface</quote >, <quote >checkMail()</quote >, <quote ></quote >) </para> </listitem> </varlistentry> <varlistentry> <term ><function >@dcopid</function ></term> <listitem> <para >O ID de &DCOP; do processo. (kmdr-executor-@pid) </para> </listitem> </varlistentry> <varlistentry> <term ><function >@dialog(<parameter >janela</parameter >[,<parameter >parâmetros</parameter >])</function ></term> <listitem> <para >Lança a janela do Kommander indicada. A janela é vista na pasta da janela e na pasta actual - por esta ordem. Isto antecede a chamada ao executor e muda a pasta por omissão para a pasta onde o ficheiro do Kommander se encontra. Os parâmetros podem ser passados da forma normal do Unix ou você poderá passar parâmetros com nomes no formato <quote >variavel=valor</quote >. Você poderá então encontrar os parâmetros passados na lista de variáveis globais. O @global(variavel) iria devolver <quote >valor</quote >. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@env(<parameter >variavelAmbiente</parameter >)</function ></term> <listitem> <para >Expande-se para a variável de ambiente. O @env(PWD) expande-se para o $PWD. Lembre-se que o <quote >$</quote > faz parte da linha de comandos e não deverá ser usado. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@exec(<parameter >comando</parameter >)</function ></term> <listitem> <para >devolve o resultado de executar o comando indicado. @exec(ls -l). </para> </listitem> </varlistentry> <varlistentry> <term ><function >@execBegin ... @execEnd</function ></term> <listitem> <para >o mesmo que o <function >@exec</function >, mas suporta o 'shebang' e 'scripts' de várias linhas. Isto serve para várias linguagens de programação, declarando-as ou utilizando um 'shebang'. </para> <itemizedlist> <listitem ><para ><function >@execBegin(php)</function ></para ></listitem> <listitem ><para ><function >@execBegin</function >#!/usr/bin/php</para ></listitem> </itemizedlist> <para >O primeiro usa o nome do executável do <acronym >PHP</acronym >. O &kommander; procura na PATH pelo <application >php</application > e, se não for encontrado, verifica se está registado no &kommander; numa localização fora da sua PATH. Se não estiver, diz ao utilizador que não pôde ser encontrado. O segundo exemplo usa o clássico <quote >shebang</quote >, o qual poderá ter alguns benefícios, assim como alguns problemas. Se você tiver uma versão beta do <acronym >PHP5</acronym >, por exemplo, no <filename >/usr/local/bin</filename >, a mesma não seria encontrada porque iria obter primeiro a versão em <filename >/usr/bin</filename >. Se, por outro lado, você distribuir a janela para alguém que tenha o <acronym >PHP</acronym > no <filename >/usr/local/bin</filename > apenas, ela não seria encontrada com o 'shebang' usado. Por isso, usar 'shebangs' deverá necessitar de cuidado e a utilização do executável é recomendada se estiver a partilhar ficheiros.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@global(<parameter >variável</parameter >)</function ></term> <listitem> <para >expande para o valor da variável global indicada. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@null</function ></term> <listitem> <para >Devolve um valor nulo. Agora que o Kommander verifica pelo 'widgetText' vazio durante a execução, isto irá evitar erros no caso de um estado indefinido de um elemento.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@parentPid</function ></term> <listitem> <para >O &PID; do processo-pai. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@pid</function ></term> <listitem> <para >O &PID; do processo. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@readSetting(<parameter >chave</parameter >, <parameter >valorPorOmissao</parameter >)</function ></term> <listitem> <para >lê um valor do <filename >kommanderrc</filename > </para> </listitem> </varlistentry> <varlistentry> <term ><function >@selectedWidgetText</function ></term> <listitem> <para >O conteúdo seleccionado de um elemento gráfico que possa mostrar mais do que um valor, como por exemplo as listas </para> </listitem> </varlistentry> <varlistentry> <term ><function >@setGlobal(<parameter >variável</parameter >, <parameter >valor</parameter >)</function ></term> <listitem> <para >Configura a variável global para o valor indicado. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@widgetText</function ></term> <listitem> <para >o conteúdo de um elemento </para> </listitem> </varlistentry> <varlistentry> <term ><function >@writeSetting(<parameter >chave</parameter >, <parameter >valor</parameter >)</function ></term> <listitem> <para >grava o valor no <filename >kommanderrc</filename > </para> </listitem> </varlistentry> </variablelist> <sect2 id="arrays"> <title >Grupo de Funções de Listas</title> <variablelist> <varlistentry> <term ><function >@Array.values(<parameter >lista</parameter >)</function ></term> <listitem> <para >Devolve uma lista separada por EOL's de todos os valores da lista. Pode ser usada para percorrer uma lista.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.keys(<parameter >lista</parameter >)</function ></term> <listitem> <para >Devolve uma lista separada por EOL's de todas as chaves da lista.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.setValue(<parameter >lista</parameter >, <parameter >chave</parameter >, <parameter >valor</parameter >)</function ></term> <listitem> <para >Define um chave e um valor para um elemento da lista. Se não existir nenhuma lista, esta é criada.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.clear(<parameter >lista</parameter >)</function ></term> <listitem> <para >Remove todos os elementos da lista.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.count(<parameter >lista</parameter >)</function ></term> <listitem> <para >Devolve o número de elementos na lista.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.value(<parameter >lista</parameter >,<parameter >chave</parameter >)</function ></term> <listitem> <para >Devolve o valor associado à chave indicado.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.remove(<parameter >lista</parameter >,<parameter >chave</parameter >)</function ></term> <listitem> <para >Remove o elemento com a chave indicada da lista.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.fromString(<parameter >lista</parameter >,<parameter >texto</parameter >)</function ></term> <listitem> <para >Adiciona todos os elementos do texto na lista. O texto deverá ter o formato <emphasis >chave\tvalor\n</emphasis >.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.toString(<parameter >lista</parameter >,<parameter >texto</parameter >)</function ></term> <listitem> <para >Devolve todos os elementos na lista num formato <emphasis >chave\tvalor\n</emphasis >.</para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="files"> <title >Grupo de Funções de Ficheiros</title> <variablelist> <varlistentry> <term ><function >@File.read(<parameter >ficheiro</parameter >)</function ></term> <listitem> <para >Devolve o conteúdo do ficheiro indicado.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@File.write(<parameter >ficheiro</parameter ><parameter >texto</parameter >)</function ></term> <listitem> <para >Escreve o texto indicado num ficheiro.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@File.append(<parameter >ficheiro</parameter ><parameter >texto</parameter >)</function ></term> <listitem> <para >Adiciona o texto indicado ao fim de um ficheiro.</para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="strings"> <title >Grupo de Funções de Cadeias de Caracteres</title> <variablelist> <varlistentry> <term ><function >@String.length(<parameter >texto</parameter >)</function ></term> <listitem> <para >Devolve o número de caracteres no texto.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.contains(<parameter >texto</parameter >,<parameter >sub-texto</parameter >)</function ></term> <listitem> <para >Verifica se o texto contém o sub-texto indicado.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.find(<parameter >texto</parameter >)</function ></term> <listitem> <para >Devlve a posição de um sub-texto no texto ou -1 se não for encontrado.</para> <note ><para >Este terá um parâmetro opcional de posição inicial para procurar as próximas instâncias na versão Alpha 6.</para ></note> </listitem> </varlistentry> <varlistentry> <term ><function >@String.left(<parameter >texto</parameter >, <parameter >num</parameter >)</function ></term> <listitem> <para >Devolve os primeiros 'num' caracteres do texto.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.right(<parameter >texto</parameter >, <parameter >num</parameter >)</function ></term> <listitem> <para >Devolve os últimos 'num' caracteres do texto.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.mid(<parameter >texto</parameter >, <parameter >inicio</parameter >, <parameter >fim</parameter >)</function ></term> <listitem> <para >Devolve uma sub-sequência do texto, delimitada pelas posições indicadas.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.remove(<parameter >texto</parameter >, <parameter >sub-texto</parameter >)</function ></term> <listitem> <para >Remove todas as ocorrências de um dado sub-texto.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.replace(<parameter >texto</parameter >, <parameter >original</parameter >, <parameter >substituicao</parameter >)</function ></term> <listitem> <para >Substitui todas as ocorrências de um dado sub-texto por outro de substituição.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.upper(<parameter >texto</parameter >)</function ></term> <listitem> <para >Converte o texto para maiúsculas.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.lower(<parameter >texto</parameter >)</function ></term> <listitem> <para >Converte o texto para minúsculas.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.compare(<parameter >texto1</parameter >, <parameter >texto2</parameter >)</function ></term> <listitem> <para >Compara dois textos. Devolve 0 se forem iguais, -1 se o primeiro texto for menor ou 1 se o primeiro texto for maior</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.isEmpty(<parameter >texto</parameter >)</function ></term> <listitem> <para >Verifica se o texto está em branco.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.isNumber(<parameter >texto</parameter >)</function ></term> <listitem> <para >Verifica se o texto é um número válido.</para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="builtins"> <title >Globais Incorporados</title> <para >Os globais incorporados são acedidos como se fossem variáveis globais normais com o <function >@global</function >.</para> <variablelist> <varlistentry> <term ><function >@global(_KDDIR)</function ></term> <listitem> <para >A directoria onde o diálogo actual se encontra.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@global(_NAME)</function ></term> <listitem ><para >O nome do diálogo</para ></listitem> </varlistentry> </variablelist> </sect2> </sect1>