« AutoIT-Sprachlogik | Home | Die AutoIT Basics »
AutoIT-Sprachlogik #2
Von Bastian in AutoIT | 29.Juli 2007
Wer sich nun fragt, weshalb ich in jedem Beitrag meine Tutorials zur AutoIT-Einführung, den Basics oder dem ersten Teil der Sprachlogik erwähne: Damit Einsteiger, die nicht von Anfang an mitlesen (sofern es solche gibt
) gleich einen Bezug zu meinen anderen Schriften haben, und weiter lesen können.
In diesem Teil der Sprachlogik möchte ich mich mit Schleifen (while(), for()), Funktionen (function()) IF-Anweisungen, Operatoren und Makros beschäftigen.
Ich bezeichne als Sprachlogik die Grundlegenden Funktionen, die es bei so gut wie allen Programmiersprachen gibt. Manchmal haben diese andere Namen (wie z.b. in TurboPascal: Funktionen nennen sich dort "Prozeduren"), aber im Grunde erfüllen Sie den gleichen Zweck. Dies beschreibt natürlich auch Kommentare, welche es auch schon bei der Stapelverarbeitung (Batch-Programmierung) gab (Befehl: rem).
Operatoren
In AutoIT gibt es einen Standard-Satz von logischen, mathematischen und Vergleichsoperatoren. Ich denke, dazu muss ich nicht mehr viel sagen - hier eine Liste:
Quelle: AutoIT-ManualMakros
Markos beschreiben in AutoIT soetwas wie Umgebungsvariablen. Sie enthalten Informationen, die sehr einfach abgerufen werden können. Makros erkennt man an dem führenden "@".
Alle hier aufzulisten würde den Rahmen sprengen - da verweise ich auf die AutoIT-Manual. Aber um einige genannt zu haben:
@HOUR, @MIN, @SEC, @MDAY, @MON, @YEAR, @OSType, @ComputerName, @UserName, @MyDocumentsDir, @WindowsDir, @TempDir, @error
Diese können ganz einfach im Script aufgerufen werden:
Dies würde dann "2007" ausgeben.
IF-Then-Else
Mit IF-Anweisungen lassen sich einfache Fallabfragen realisieren. Geprüft wird immer eine oder mehrere Bedingungen, wenn Sie zutreffen, wird ther "Then"-Teil ausgeführt. Im Gegensatz zu anderen Sprachen kann man den Zuweisungsoperator "=" auch als Vergleichsoperator nutzen.
Ein Beispiel:
$var = 5
Man kann dies natürlich anhand eines Else-Statements vereinfachen:
$var = 5
Was aber nun, wenn in jedem anderen Fall ($var ist NICHT gleich 1 und NICHT gleich 5) etwas passieren soll? Richtig! Else:
$var = 5
While-Schleife
In AutoIT können ebenso While-Schleifen (Kopfgesteuerte Schleifen) genutzt werden. Dieser wird - wie von anderen Sprachen bekannt - eine Bedingung übergeben. Solange diese Bedingung zutrifft, oder nicht "manuell" abgebrochen wird, wird der Schleifen-Text ausgeführt. Ein Beispiel:
$i = 0 $i++; ; $i++ hat den selben Effekt wie $i = $i + 1
Schleifen können auch abgebrochen werden:
$i = 0 while 1 $i++;
For-Schleife
Nun, ich denke, ein einfaches Beispiel sagt mehr als tausend Worte:
Funktionen
Man geht von folgender Situation aus: Man möchte an mehreren Stellen in einem Programm eine Berechnung durchführen. Es werden mehrere Zahlen eingelesen, die mtieinander addiert werden sollen.
Nun könnte man an jeder dieser Stellen die Gleichung $ergebnis = $a + $b + $c schreiben. Auf dauer, und gerade bei komplizierteren Gleichungen ergibt das sehr viel Code - der doch irgendwie gleich ist.
Hier kommen Funktionen ins Spiel: Funktionen drücken sich "Allgemein" aus, und tun nichts weiter als Blackbox spielen: Man wirft zwei Äpfel rein, und raus kommt eine Birne.
Dies hat natürlich auch den Vorteil, dass es dem Programmierer, der davor sitzt, egal sein kann, wie genau aus zwei Äpfeln eine Birne wird. Dieser Fakt ist wichtig: Es ist heute nicht mehr nötig, dass jeder Programmierer ein kluger Mathematiker sein muss, der sich mit den Begebenheiten der Naturwissenschaften auskennt - er muss nur eine Funktion nutzen, die ein solcher geschrieben hat.
; werden
Funktionen müssen KEINE Parameter übergeben werden:
return $time
(ursprünglich von weilichskann.de)
Themen: AutoIT |