Especiais e Variáveis Globais Embutidas

Marcus Gama

    marcus_gama@uol.com.br

Tradução

# Especiais e Variáveis Globais Embutidas

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á.

`@dcop(idApl, objeto, função, argumentos)`

  Faz uma chamada de &DCOP;. @dcop(kmail, KMailIface, checkMail(), )

`@dcopid`

  O ID de &DCOP; do processo. (kmdr-executor-@pid)

`@dialog(diálogo[,parâmetros])`

  Lança o diálogo do Kommander indicado. O diálogo é visto na pasta do diálogo e na pasta atual - nesta ordem. Isto antecede a chamada ao executor e muda a pasta padrão para a pasta onde o arquivo 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 variavel=valor. Você poderá então encontrar os parâmetros passados na lista de variáveis globais. O @global(variavel) iria devolver valor.

`@env(variavelAmbiente)`

  Expande-se para a variável de ambiente. O @env(PWD) expande-se para o $PWD. Lembre-se que o $ faz parte da linha de comando e não deverá ser usado.

`@exec(comando)`

  devolve o resultado da execução do comando indicado. @exec(ls -l).

`@execBegin ... @execEnd`

  o mesmo que o `@exec`, 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'.

  - `@execBegin(php)`

  - `@execBegin`#!/usr/bin/php

  O primeiro usa o nome do executável do PHP. O &kommander; procura na PATH pelo php e, se não for encontrado, verifica se está registrado no &kommander; numa localização fora da sua PATH. Se não estiver, diz ao usuário que não pôde ser encontrado. O segundo exemplo usa o clássico shebang, que poderá ter alguns benefícios, assim como alguns problemas. Se você tiver uma versão beta do PHP5, por exemplo, no `/usr/local/bin`, ela não seria encontrada porque iria obter primeiro a versão em `/usr/bin`. Se, por outro lado, você distribuir o diálogo para alguém que tenha o PHP no `/usr/local/bin` 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 compartilhando arquivos.

`@global(variável)`

  expande para o valor da variável global indicada.

`@null`

  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.

`@parentPid`

  O &PID; do processo-pai.

`@pid`

  O &PID; do processo.

`@readSetting(chave, valorPadrão)`

  lê um valor do `kommanderrc`

`@selectedWidgetText`

  O conteúdo selecionado de um elemento gráfico que possa mostrar mais de um valor, como por exemplo as listas

`@setGlobal(variável, valor)`

  Configura a variável global para o valor indicado.

`@widgetText`

  o conteúdo de um elemento

`@writeSetting(chave, valor)`

  grava o valor no `kommanderrc`

## Grupo de Funções de Listas

`@Array.values(lista)`

  Devolve uma lista separada por EOL's de todos os valores da lista. Pode ser usada para percorrer uma lista.

`@Array.keys(lista)`

  Devolve uma lista separada por EOL's de todas as chaves da lista.

`@Array.setValue(lista, chave, valor)`

  Define um chave e um valor para um elemento da lista. Se não existir nenhuma lista, ela é criada.

`@Array.clear(lista)`

  Remove todos os elementos da lista.

`@Array.count(lista)`

  Devolve o número de elementos na lista.

`@Array.value(lista,chave)`

  Devolve o valor associado à chave indicada.

`@Array.remove(lista,chave)`

  Remove o elemento com a chave indicada da lista.

`@Array.fromString(lista,texto)`

  Adiciona todos os elementos do texto na lista. O texto deverá ter o formato chave\tvalor\n.

`@Array.toString(lista,texto)`

  Devolve todos os elementos na lista num formato chave\tvalor\n.

## Grupo de Funções de Arquivos

`@File.read(arquivo)`

  Devolve o conteúdo do arquivo indicado.

`@File.write(arquivotexto)`

  Escreve o texto indicado num arquivo.

`@File.append(arquivotexto)`

  Adiciona o texto indicado ao fim de um arquivo.

## Grupo de Funções de Cadeias de Caracteres

`@String.length(texto)`

  Devolve o número de caracteres no texto.

`@String.contains(texto,sub-texto)`

  Verifica se o texto contém o sub-texto indicado.

`@String.find(texto)`

  Devlve a posição de um sub-texto no texto ou -1 se não for encontrado.

  Isto terá um parâmetro opcional de posição inicial para procurar as próximas instâncias na versão Alpha 6.

`@String.left(texto, num)`

  Devolve os primeiros 'num' caracteres do texto.

`@String.right(texto, num)`

  Devolve os últimos 'num' caracteres do texto.

`@String.mid(texto, inicio, fim)`

  Devolve uma sub-sequência do texto, delimitada pelas posições indicadas.

`@String.remove(texto, sub-texto)`

  Remove todas as ocorrências de um determinado sub-texto.

`@String.replace(texto, original, substituicao)`

  Substitui todas as ocorrências de um determinado sub-texto por outro de substituição.

`@String.upper(texto)`

  Converte o texto para maiúsculas.

`@String.lower(texto)`

  Converte o texto para minúsculas.

`@String.compare(texto1, texto2)`

  Compara dois textos. Devolve 0 se forem iguais, -1 se o primeiro texto for menor ou 1 se o primeiro texto for maior

`@String.isEmpty(texto)`

  Verifica se o texto está vazio.

`@String.isNumber(texto)`

  Verifica se o texto é um número válido.

## Globais Embutidos

Os globais embutidos são acessados como se fossem variáveis globais normais com o `@global`.

`@global(_KDDIR)`

  A pasta onde o diálogo atual se encontra.

`@global(_NAME)`

  O nome do diálogo