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 weede 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(filestring)`

  Schrijf gegeven tekenreeks naar een bestand.

`@File.append(filestring)`

  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