# Especials i variables globals encastades

Les especials són funcions que processades per &kommander;. Heu de tenir en compte que fins que &kommander; disposi d'un analitzador complet, totes les especials de &kommander; s'executaran abans que l'script. En la majoria dels casos això no és un problema, però en alguns sí.

`@dcop(`appId`, `objecte`, `funció`, `arguments`)`

- Realitza una crida &DCOP;. @dcop(kmail, KMailIface, checkMail(), )

`@dcopid`

- L'identificador &DCOP; del procés. (kmdr-executor-@pid).

`@dialog(`diàleg`[,`paràmetres`])`

- Llança el diàleg de &kommander; especificat. El diàleg que se cerca en el directori de diàlegs i en el directori actual -en aquest ordre-. Aquesta tasca es du a terme abans de cridar a l'executor i establir el directori per omissió en el qual es troba l'aplicació &kommander;. Els paràmetres es poden passar a la forma usual d'Unix o per nom com variable=valor. A continuació, pot trobar els paràmetres passats a la piscina global. @global(variable) retornaria valor.

`@env(`variableEntorn`)`

- S'expandeix a la variable d'entorn especificada. @env(PWD) s'expandeix a $PWD. Recordeu que $ forma part de la l'intèrpret d'ordres i no s'ha d'utilitzar.

`@exec(`ordre`)`

- Retorna el resultat d'executar l'ordre especificada. @exec(ls -l).

`@execBegin «...» @execEnd`

- El mateix que `@exec`, però admet la creació de scripts shebang i multi-línia. Això serveix per a diversos llenguatges de script, ja sigui per declarar o per utilitzar un shebang.

  - `@execBegin(php)`

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

  El primer utilitza el nom de l'executable de PHP. &kommander; cerca a la PATH per a php i si no el troba mira per veure si s'ha registrat amb &kommander; a un lloc fora del seu camí. Si no s'indica l'usuari no el podrà trobar. Els segon exemple utilitza el clàssic shebang, el qual posseeix alguns avantatges i també certs inconvenients. Si teniu una còpia beta de PHP5, per exemple, en `/usr/local/bin` que no es trobi per no estar a `/usr/bin` això seria útil. No obstant, si distribuïu el diàleg amb algú que només tingui PHP a `/usr/local/bin` no el trobarà quan s'utilitzi shebang. Pel que utilitzeu els shebangs amb compte, i es recomana utilitzar l'executable si aneu a compartir fitxers.

`@global(`variable`)`

- Expandeix el valor de la variable global especificada.

`@null`

- Retorna null. Ara que &kommander; comprova en execució si widgetText és buit, això evitarà previndrà errors en el cas que hi hagi un estat sense definir en un estri.

`@parentPid`

- El &PID; del procés pare.

`@pid`

- El &PID; del procés.

`@readSetting(`clau`, `valorOmissió`)`

- Llegeix un valor des de `kommanderrc`.

`@selectedWidgetText`

- El contingut seleccionat en un estri que pot mostrar més d'un valor, com els estris de llista.

`@setGlobal(`variable`, `valor`)`

- Estableix la variable global al valor especificat.

`@widgetText`

- El contingut d'un estri.

`@writeSetting(`clau`, `valor`)`

- Escriu un valor a `kommanderrc`.

## Grup de funcions de matriu

`@Array.values(`matriu`)`

- Retorna una llista separada per final de línia de tots els valors en la matriu. Es pot utilitzar per a recórrer una matriu.

`@Array.keys(`matriu`)`

- Retorna una llista separada per final de línia de totes les claus en la matriu.

`@Array.setValue(`matriu`, `clau`, `valor`)`

- Estableix una clau i un valor per a un element d'una matriu. Si no hi ha cap matriu, es crearà.

`@Array.clear(`matriu`)`

- Elimina tots els elements de la matriu.

`@Array.count(`matriu`)`

- Retorna el nombre d'elements en la matriu.

`@Array.value(`matriu`,`clau`)`

- Retorna el valor associat a la clau donada.

`@Array.remove(`matriu`,`clau`)`

- Elimina l'element amb la clau donada de la matriu.

`@Array.fromString(`matriu`,`cadena`)`

- «Afegeix tots els elements en la cadena a la matriu. La cadena haurà de tenir el format clau \tvalor\n».

`@Array.toString(`matriu`,`cadena`)`

- «Retorna tots els elements a la matriu en el format clau\tvalor\n».

## Grup de funcions de fitxer

`@File.read(`fitxer`)`

- Retorna el contingut del fitxer donat.

`@File.write(`fitxer``cadena`)`

- Escriu la cadena donada a un fitxer.

`@File.append(`fitxer``cadena`)`

- Afegeix la cadena donada al final d'un fitxer.

## Grup de funcions de cadena

`@String.length(`cadena`)`

- Retorna el nombre de caràcters en la cadena.

`@String.contains(`cadena`,`subcadena`)`

- Comprova si la cadena conté la subcadena donada.

`@String.find(`cadena`)`

- Retorna la posició d'una subcadena en la cadena, o -1 si no es troba.

  Això tindrà una posició de començament opcional de tipus sencer per trobar propers usos en l'alfa 6.

`@String.left(`cadena`, `sencer`)`

- Retorna els primers «núm.» caràcters de la cadena.

`@String.right(`cadena`, `sencer`)`

- Retorna els últims «núm.» caràcters de la cadena.

`@String.mid(`cadena`, `sencer inici`, `sencer final`)`

- Retorna una subcadena de la cadena, començant des de la posició donada.

`@String.remove(`cadena`, `subcadena`)`

- Elimina totes les ocurrències d'una subcadena donada.

`@String.replace(`cadena`, `subcadena de cerca`, `subcadena de substitució`)`

- Substitueix totes les ocurrències d'una subcadena donada amb una de substitució donada.

`@String.upper(`cadena`)`

- Converteix la cadena a majúscules.

`@String.lower(`cadena`)`

- Converteix la cadena a minúscules.

`@String.compare(`cadena`, `cadena`)`

- Compara dues cadenes. Retorna 0 si són iguals, -1 si la primera és menor, 1 si la primera és major.

`@String.isEmpty(`cadena`)`

- Comprova si la cadena és buida.

`@String.isNumber(`cadena`)`

- Comprova si la cadena és un nombre vàlid.

## Globals encastades

A les globals encastades s'accedeix com a les variables globals comunes amb `@global`.

`@global(_KDDIR)`

- El directori en el que es troba del diàleg actual.

`@global(_NAME)`

- El nom del diàleg.