# Specials en ingebouwde globale variabelen

&Sander.Koning;

# 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