# Specials en ingebouwde globale variabelen

Specials zijn functies die door &kommander; verwerkt worden. Let erop dat, totdat &kommander; een volledige parser heeft, alle &kommander;-specials eerst uitgevoerd worden en daarna het script. In de meeste gevallen is dat geen probleem, maar soms wel.

`@dcop(`appId`, `object`, `function`, `arguments`)`

- Doe een &DCOP;-aanroep. @dcop(kmail, KMailIface, checkMail(), )

`@dcopid`

- Het &DCOP;-id van het proces. (kmdr-executor-@pid)

`@dialog(`dialog`[,`parameters`])`

- Start het opgegeven Kommander-dialoogvenster op. Het dialoogvenster wordt gezocht in de dialoogmap en in de huidige map - in die volgorde. Dit gaat vooraf aan de aanroep naar de uitvoerder en stelt de standaardmap in op degene waar de Kommander-toepassing zich in bevindt. Parameters kunnen op de gebruikelijke Unix-manier worden meegegeven of u kunt parameters met naam meegeven als variable=value. U kunt de meegegeven parameters dan terugvinden in de global pool. @global(variable) retourneert value.

`@env(`environmentVariable`)`

- Expandeert naar de opgegeven omgevingsvariabele. @env(PWD) expandeert naar $PWD. Onthoud dat $ deel van de shell is en niet gebruikt moet worden.

`@exec(`command`)`

- retourneert de uitvoer van het uitvoeren van de opgegeven opdracht. @exec(ls -l).

`@execBegin ... @execEnd`

- hetzelfde als `@exec`, maar met ondersteuning voor #! en meerregelige scripts. Dit ondersteunt diverse scripttalen door ze te declareren of door het gebruik van #!.

  - `@execBegin(php)`

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

  De eerste gebruikt de naam van het uitvoerbare bestand van PHP. &kommander; zoekt in het PATH naar php en als dit niet gevonden is, wordt gezocht of het in &kommander; is ingesteld buiten uw pad. Zo niet, dan wordt de gebruiker verteld dat het niet gevonden kan worden. Het tweede voorbeeld gebruikt de klassieke #! die voor- en nadelen kan hebben. Als u een betaversie van PHP5 hebt, bijvoorbeeld, in `/usr/local/bin` die niet gevonden zou worden omdat de versie in `/usr/bin` gevonden zou worden is dit nuttig. Maar, als u het dialoogvenster verspreidt naar iemand die PHP alleen in `/usr/local/bin` heeft wordt deze niet gevonden als u de #! gebruikt. #! gebruiken is dus niet zonder risico en het wordt aangeraden het uitvoerbare bestand te gebruiken als u bestanden deelt.

`@global(`variable`)`

- expandeert naar de waarde van de opgegeven globale variabele.

`@null`

- Retourneert null. Nu Kommander op een lege widgetText controleert bij het uitvoeren, voorkomt dit foutieve fouten in het geval van een niet-ingestelde staat op een widget.

`@parentPid`

- Het &PID; van het ouderproces.

`@pid`

- Het &PID; van het proces.

`@readSetting(`key`, `defaultValue`)`

- leest een waarde uit `kommanderrc`

`@selectedWidgetText`

- de geselecteerde inhoud in een widget die meer dan één waarde kunnen weergeven, zoals lijstwidgets

`@setGlobal(`variable`, `value`)`

- Stelt de globale variabele in op de opgegeven waarde.

`@widgetText`

- de inhoud van een widget

`@writeSetting(`key`, `value`)`

- schrijf waarde naar `kommanderrc`

## De functiegroep "Array"

`@Array.values(`array`)`

- Retourneert een EOL-gescheiden lijst van alle waarden in de array. Kan gebruikt worden om door een array te lopen.

`@Array.keys(`array`)`

- Retourneert een EOL-gescheiden lijst van alle sleutels in de array

`@Array.setValue(`array`, `key`, `value`)`

- Stel sleutel en waarde in voor een element van een array. Als geen array bestaat wordt deze aangemaakt.

`@Array.clear(`array`)`

- Verwijder alle elementen uit de array.

`@Array.count(`array`)`

- Retourneer aantal elementen in de array.

`@Array.value(`array`,`key`)`

- Retourneer de waarde die bij de opgegeven sleutel hoort.

`@Array.remove(`array`,`key`)`

- Verwijder element met de opgegeven sleutel uit de array.

`@Array.fromString(`array`,`string`)`

- Voeg alle elementen in de tekenreeks toe aan de array. De tekenreeks moet van het formaat key\tvalue\n zijn.

`@Array.toString(`array`,`string`)`

- Retourneer alle elementen in de array in key\tvalue\n formaat.

## De functiegroep "File"

`@File.read(`file`)`

- Retourneer inhoud van het opgegeven bestand.

`@File.write(`file``string`)`

- Schrijf gegeven tekenreeks naar een bestand.

`@File.append(`file``string`)`

- Voeg gegeven tekenreeks toe aan het einde van een bestand.

## De functiegroep "String"

`@String.length(`string`)`

- Retourneert het aantal tekens in de tekenreeks.

`@String.contains(`string`,`substring`)`

- Controleer of de tekenreeks gegeven subreeks bevat.

`@String.find(`string`)`

- Retourneer positie van een subreeks in de tekenreeks, of -1 als deze niet gevonden werd.

  Een optionele startpositie voor het vinden van volgende voorkomens is beschikbaar vanaf Alpha 6.

`@String.left(`string`, `int`)`

- Retourneer de eerste n tekens van de tekenreeks.

`@String.right(`string`, `int`)`

- Retourneer de laatste n tekens van de tekenreeks.

`@String.mid(`string`, `int start`, `int end`)`

- Retourneer subreeks van de tekenreeks vanaf opgegeven positie.

`@String.remove(`string`, `substring`)`

- Verwijder alle voorkomens van een gegeven subreeks.

`@String.replace(`string`, `substring find`, `substring replace`)`

- Vervang alle voorkomens van een gegeven subreeks door een gegeven vervanging.

`@String.upper(`string`)`

- Zet de tekenreeks om naar hoofdletters.

`@String.lower(`string`)`

- Zet de tekenreeks om naar kleine letters.

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

- Vergelijk twee tekenreeksen. Retourneer 0 als ze gelijk zijn, -1 als de eerste lager is, 1 als de eerste hoger is.

`@String.isEmpty(`string`)`

- Controleer of de tekenreeks leeg is.

`@String.isNumber(`string`)`

- Controleer of de tekenreeks een geldig getal is.

## Ingebouwde globale variabelen

Ingebouwde globale variabelen worden net als gewone globale variabelen benaderd met `@global`.

`@global(_KDDIR)`

- De map waar het huidige dialoogvenster zich in bevindt.

`@global(_NAME)`

- De naam van het dialoogvenster