kramann.info
© Guido Kramann

Login: Passwort:










4.1 Textzeile in Zahlenfolge umwandeln

Im Gegensatz zu Compilersprachen, arbeiten Skriptsprachen Zeile für Zeile eines Programms mit Hilfe eines Interpreters ab. Das folgende Programm stellt einen einfachen Interpreter dar, der eine minimale Anzahl an Befehlen kennt, nämlich: dir, pad und exit.

Das Programm zeigt ausserdem auf, wie man von einem C++ - Programm aus, andere Programme steuern kann. So etwas ist beispielsweise wichtig, wenn mehrere Programme in eine große Anwendung integriert werden sollen, ohne in die bestehenden Programme einzugreifen (sei es, dass es als zu aufwändig, zu schwierig oder als eine Quelle von Fehlern angesehen wird). Das Notepad könnte z.B. mit einer Benutzerliste geöffnet werden, die zwar von dem eigenen Programm verwendet wird, deren Editierung aber der Einfachheit halber durch das verfügbare Notepad erfolgen soll.

Nach der Initialisierung des aktuellen Befehls "befehl" mit einem leeren String (befehl=""), führt das Programm folgende Schritte in einer Endlosschleife aus:

  1. Wenn befehl=="dir", dann führe Systembefehl "dir" aus
  2. Wenn andernfalls befehl=="pad", dann führe Systembefehl "notepad.exe" aus
  3. Wenn andernfalls befehl=="exit", dann verlasse die Endlosschleife
  4. andernfalls Gebe dem Benutzer die möglichen Befehle an.
#include <iostream>
#include <string>
using namespace std;

int main(void)
{
    string befehl = "";

    while(true)
    {
        if(befehl=="dir")
            system("dir");
        else if(befehl=="pad")
            system("notepad.exe");
        else if(befehl=="exit")
            break;
        else
        {
            cout<<endl<<"Geben Sie einen der folgenden Befehle ein:";
            cout<<endl<<"dir  -> listet Dateien und Ordner auf";
            cout<<endl<<"pad  -> startet ein Notepad";
            cout<<endl<<"exit -> beendet dieses Programm";
        }
        cout<<endl<<"Befehl:";
        cin>>befehl;        
    }

    cout<<"Das Programm wird beendet";
    return 0;
}

Code 4.1-1: C++ Programm "befehleverstehen.cpp"