OBS/Makros und Scripting/Allgemeines/Syntax: Unterschied zwischen den Versionen

Aus OBS Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „I'm Tammara and I live in Kropfling. <br>I'm interested in Arts, Baton twirling and Dutch art. I like travelling and reading fantasy.<br><br>Look at my site ho…“)
 
(Die Seite wurde neu angelegt: „Die Makros im OBS orientieren sich an der Syntax der Sprache [https://de.wikipedia.org/wiki/Pascal_%28Programmiersprache%29 Pascal]. =Variablen-Typen= ==string…“)
Zeile 1: Zeile 1:
I'm Tammara and I live in Kropfling. <br>I'm interested in Arts, Baton twirling and Dutch art. I like travelling and reading fantasy.<br><br>Look at my site hot oil natural hair [[http://glengranttasting.com/ActivityFeed/MyProfile/tabid/61/UserId/37366/language/en-US/Default.aspx http://glengranttasting.com/]]
Die Makros im OBS orientieren sich an der Syntax der Sprache [https://de.wikipedia.org/wiki/Pascal_%28Programmiersprache%29 Pascal].
=Variablen-Typen=
==string==
Variablen des Typs ''string'' enthalten Zeichenketten (Text) wie z. B. 'Max Mustermann' oder 'Musterweg 1a'.
==integer==
Variablen des Typs ''integer'' enthalten Ganzzahlen wie 2, 15 oder 1538.
==double==
Variablen des Typs ''double'' enthalten Dezimalzahlen. Hier ist zu beachten, dass das Trennzeichen bei der Angabe von Dezimalstellen immer ein Punkt ist.<br />
Beispiel:
Preis := 10.95;
==boolean==
Variablen dieses Typs enthalten Wahrheitswerte. Sie können entweder wahr oder falsch sein. Der Wert lässt sich direkt mit ''true'' oder ''false'' setzen. Es können aber Bedingungen für die Zuweisung verwendet werden. Boolsche Variablen lassen sich in bedingten Anweisungen des Typs [[OBS/Makros#if|''if'']] auch ohne Vergleichswert nutzen.<br />
Beispiel:<br />
<br />
Vorbelegung:
<syntaxhighlight lang="Delphi">
    Verglichen = false;
    A_ist_kleiner_B = false;
</syntaxhighlight>
<br />
Abfrage:
<syntaxhighlight lang="Delphi">
    if (not Verglichen) then begin
        A_ist_kleiner_B := A < B;
        Verglichen := true;
    end;
</syntaxhighlight>
 
=Konstanten=
[https://de.wikipedia.org/wiki/Konstante_(Programmierung) Konstanten] enthalten wie Variablen bestimmte Werte. Anders als bei Variablen werden Konstanten nicht einfach mit einem Datentyp sondern schon mit dem Wert definiert, der im ganzen Programm(-teil) verfügbar sein soll. Kostanten können nicht verändert werden.<br />
<br />
In Makros lassen sich eigene Konstanten definieren. Das kann wie folgt aussehen:
<syntaxhighlight lang="Delphi">
const
    GRUSS = 'Mit freundlichen Grüßen';
    HOMEPAGE_HINWEIS = 'Besuchen Sie uns doch mal auf unserer Homepage unter www.unsere-seite.de und erfahren '+
                      'Sie mehr über die ergonomische Einrichtung von Arbeitsplätzen. Für aktuelle Informationen '+
                      'oder Aktionen könne Sie sich auf unserer Homepage für den Newsletter eintragen.';
</syntaxhighlight>
Eine Übersicht der Konstanten die vom OBS für Makros mitgeliefert werden finden Sie [[OBS/Makros#.C3.9Cbersicht_Konstanten|hier]].
 
=Methoden=
Es gibt zwei Typen: Prozedur und Funktion. Der Unterschied dabei ist, dass Funktionen einen Rückgabewert haben. Die Definition einer Methode erfolgt in der Reihenfolge Typ-Anweisung, Methodenname, Parameter und bei Funktionen der Typ des Rückgabewerts. Mehrere Parameter sind mit Semikolon zu trennen.<br />
<br />
Beispiel Prozedur:
<syntaxhighlight lang="Delphi">
procedure Name(cParameter1: string; nParameter2: integer);
</syntaxhighlight>
Beispiel Funktion:
<syntaxhighlight lang="Delphi">
function Name(cParameter1: string; nParameter2: integer): boolean;
</syntaxhighlight>
 
=Bedingte Anweisungen=
Bedingte Anweisungen machen es möglich einen Teil des Makros nur ausführen zu lassen, wenn etwas bestimmtes zutrifft. In Pascal gibt es dafür ''if'' und ''case''. Die ''case''-Anweisung unterliegt dabei allerdings im Vergleich zur ''if''-Anweisung einiger Einschränkungen.
==if==
<syntaxhighlight lang="Delphi">
    if Bedingung then begin
        Befehl 1;
        Befehl 2;
        ...
    end;
</syntaxhighlight>
Es ist auch möglich mehrere Bedingungen zu definieren. Dabei lässt sich bestimmen, ob nur eine, alle oder ein Teil der Bedingung zutreffen muss, um den Teil des Makros auszuführen. Das kann hilfreich sein, wenn in mehreren Fällen das gleiche passieren soll.<br />
Alle Bedingungen sollen zutreffen:
<syntaxhighlight lang="Delphi">
    if Bedingung1 and Bedingung2 then begin
</syntaxhighlight>
Nur eine Bedingung muss zutreffen:
<syntaxhighlight lang="Delphi">
    if Bedingung1 or Bedingung2 then begin
</syntaxhighlight>
Nur Bedingung 1 oder Bedingung 2 und 3 (hier sind die Klammern wichtig!):
<syntaxhighlight lang="Delphi">
    if Bedingung1 or (Bedingung2 and Bedingung 3) then begin
</syntaxhighlight>
==case==
Die ''case''-Anweisung prüft den Wert einer Variablen ab und und führt dann den - sofern vorhanden - dazu passenden Fall aus. Dies funktioniert jedoch nur mit einem ordinalen Typ (z. B. Ganzzahl oder einzelnes Zeichen).<br />
Struktur:
<syntaxhighlight lang="Delphi">
    case Wert of
        Fall1 : Anweisung;
        Fall2 : Anweisung;
        Fall3 : begin
            Anweisung 1;
            Anweisung 2;
        end;
    else
        Standard-Anweisung
    end;
</syntaxhighlight>
Es können als Bedingung (Fall) auch mehrere Angaben mit Komma getrennt erfolgen oder Bereiche mit zwei Punkten angegeben werden.<br />
Beispiel:
<syntaxhighlight lang="Delphi">
    case Monat of
        1,3,5,7..8,10,12 : Tage := 31;
        2 : begin
            if IstSchaltjahr then begin
                Tage := 29;
            end else begin
                Tage := 28;
            end;
        end;
    else
        Tage := 30;
    end;
</syntaxhighlight>
 
=Schleifen=
Schleifen ermöglichen die mehrfache Ausführung eines Teils des Makros. Es wird unterschieden in kopfgesteuerten und fußgesteuerten Schleifen. In den Makros können Sie zwei kopfgesteuerte (''while'' und ''for'') und eine fußgesteuerte Schleife (''repeat until'') verwenden. Der Unterschied besteht darin, dass bei kopfgesteuerten Schleifen der eingefasste Teil nur ausgeführt wird, wenn die Bedingung der Schleife dies zulässt. Bei der fußgesteuerten Schleife wird der eingefasste Teil mindestens einmal ausgeführt. Die weitere Ausführung entscheidet dann die Bedingung am "Fuß" der Schleife.
==while==
Bei dieser kopfgesteuerten Schleife wird der eingefasste Code solange ausgeführt, bis die Bedingung nicht mehr erfüllt ist. Die Anzahl der Durchläufe kann abhängig von der Bedingung variieren. Es ist möglich Variablen der Bedingung innerhalb der Schleife zu verändern. Es ist möglich eine unendliche Ausführung dieser Schleife zu erzeugen.
==for==
Schleifen vom Typ ''for'' arbeiten mit einem festen Zähler. Es kann dabei hoch sowie runter gezählt werden. Sobald der Startwert und der Endwert bestimmt sind, wird die Schleife entsprechend oft ausgefüht. Auf den Zähler kann dabei innerhalb der Schleife kein Einfluss genommen werden.
==repeat until==
Die eingefasste Code dieser fußgesteuerten Schleife wird '''wiederholt''', '''bis''' die Abbruch-Bedingung erfüllt wird.

Version vom 8. April 2019, 16:21 Uhr

Die Makros im OBS orientieren sich an der Syntax der Sprache Pascal.

Variablen-Typen

string

Variablen des Typs string enthalten Zeichenketten (Text) wie z. B. 'Max Mustermann' oder 'Musterweg 1a'.

integer

Variablen des Typs integer enthalten Ganzzahlen wie 2, 15 oder 1538.

double

Variablen des Typs double enthalten Dezimalzahlen. Hier ist zu beachten, dass das Trennzeichen bei der Angabe von Dezimalstellen immer ein Punkt ist.
Beispiel:

Preis := 10.95;

boolean

Variablen dieses Typs enthalten Wahrheitswerte. Sie können entweder wahr oder falsch sein. Der Wert lässt sich direkt mit true oder false setzen. Es können aber Bedingungen für die Zuweisung verwendet werden. Boolsche Variablen lassen sich in bedingten Anweisungen des Typs if auch ohne Vergleichswert nutzen.
Beispiel:

Vorbelegung:

    Verglichen = false;
    A_ist_kleiner_B = false;


Abfrage:

    if (not Verglichen) then begin
        A_ist_kleiner_B := A < B;
        Verglichen := true;
    end;

Konstanten

Konstanten enthalten wie Variablen bestimmte Werte. Anders als bei Variablen werden Konstanten nicht einfach mit einem Datentyp sondern schon mit dem Wert definiert, der im ganzen Programm(-teil) verfügbar sein soll. Kostanten können nicht verändert werden.

In Makros lassen sich eigene Konstanten definieren. Das kann wie folgt aussehen:

const
    GRUSS = 'Mit freundlichen Grüßen';
    HOMEPAGE_HINWEIS = 'Besuchen Sie uns doch mal auf unserer Homepage unter www.unsere-seite.de und erfahren '+
                       'Sie mehr über die ergonomische Einrichtung von Arbeitsplätzen. Für aktuelle Informationen '+
                       'oder Aktionen könne Sie sich auf unserer Homepage für den Newsletter eintragen.';

Eine Übersicht der Konstanten die vom OBS für Makros mitgeliefert werden finden Sie hier.

Methoden

Es gibt zwei Typen: Prozedur und Funktion. Der Unterschied dabei ist, dass Funktionen einen Rückgabewert haben. Die Definition einer Methode erfolgt in der Reihenfolge Typ-Anweisung, Methodenname, Parameter und bei Funktionen der Typ des Rückgabewerts. Mehrere Parameter sind mit Semikolon zu trennen.

Beispiel Prozedur:

procedure Name(cParameter1: string; nParameter2: integer);

Beispiel Funktion:

function Name(cParameter1: string; nParameter2: integer): boolean;

Bedingte Anweisungen

Bedingte Anweisungen machen es möglich einen Teil des Makros nur ausführen zu lassen, wenn etwas bestimmtes zutrifft. In Pascal gibt es dafür if und case. Die case-Anweisung unterliegt dabei allerdings im Vergleich zur if-Anweisung einiger Einschränkungen.

if

    if Bedingung then begin
        Befehl 1;
        Befehl 2;
        ...
    end;

Es ist auch möglich mehrere Bedingungen zu definieren. Dabei lässt sich bestimmen, ob nur eine, alle oder ein Teil der Bedingung zutreffen muss, um den Teil des Makros auszuführen. Das kann hilfreich sein, wenn in mehreren Fällen das gleiche passieren soll.
Alle Bedingungen sollen zutreffen:

    if Bedingung1 and Bedingung2 then begin

Nur eine Bedingung muss zutreffen:

    if Bedingung1 or Bedingung2 then begin

Nur Bedingung 1 oder Bedingung 2 und 3 (hier sind die Klammern wichtig!):

    if Bedingung1 or (Bedingung2 and Bedingung 3) then begin

case

Die case-Anweisung prüft den Wert einer Variablen ab und und führt dann den - sofern vorhanden - dazu passenden Fall aus. Dies funktioniert jedoch nur mit einem ordinalen Typ (z. B. Ganzzahl oder einzelnes Zeichen).
Struktur:

    case Wert of
        Fall1 : Anweisung;
        Fall2 : Anweisung;
        Fall3 : begin
            Anweisung 1;
            Anweisung 2;
        end;
    else
        Standard-Anweisung
    end;

Es können als Bedingung (Fall) auch mehrere Angaben mit Komma getrennt erfolgen oder Bereiche mit zwei Punkten angegeben werden.
Beispiel:

    case Monat of
        1,3,5,7..8,10,12 : Tage := 31;
        2 : begin
            if IstSchaltjahr then begin
                Tage := 29;
            end else begin
                Tage := 28;
            end;
        end;
    else
        Tage := 30;
    end;

Schleifen

Schleifen ermöglichen die mehrfache Ausführung eines Teils des Makros. Es wird unterschieden in kopfgesteuerten und fußgesteuerten Schleifen. In den Makros können Sie zwei kopfgesteuerte (while und for) und eine fußgesteuerte Schleife (repeat until) verwenden. Der Unterschied besteht darin, dass bei kopfgesteuerten Schleifen der eingefasste Teil nur ausgeführt wird, wenn die Bedingung der Schleife dies zulässt. Bei der fußgesteuerten Schleife wird der eingefasste Teil mindestens einmal ausgeführt. Die weitere Ausführung entscheidet dann die Bedingung am "Fuß" der Schleife.

while

Bei dieser kopfgesteuerten Schleife wird der eingefasste Code solange ausgeführt, bis die Bedingung nicht mehr erfüllt ist. Die Anzahl der Durchläufe kann abhängig von der Bedingung variieren. Es ist möglich Variablen der Bedingung innerhalb der Schleife zu verändern. Es ist möglich eine unendliche Ausführung dieser Schleife zu erzeugen.

for

Schleifen vom Typ for arbeiten mit einem festen Zähler. Es kann dabei hoch sowie runter gezählt werden. Sobald der Startwert und der Endwert bestimmt sind, wird die Schleife entsprechend oft ausgefüht. Auf den Zähler kann dabei innerhalb der Schleife kein Einfluss genommen werden.

repeat until

Die eingefasste Code dieser fußgesteuerten Schleife wird wiederholt, bis die Abbruch-Bedingung erfüllt wird.