Dem Butler Beine machen: Command-Dateien in Mortimer selbst programmieren

»Mortimer« ist ein mächtiger Diener im Hintergrund. Allerdings läßt sich sein Arbeitsvermögen durch Fortbildung noch erheblich steigern. Auf dem Stundenplan steht deshalb das Programmieren von Command-Dateien.

Stellen Sie sich einmal folgende Situation vor. Sie möchten eine Textdatei oder ein Datenbank-File aus einem fremden Programm in Ihre eigene Anwendung übernehmen. Leider enthält die betreffende Datei neben den ASCII-Informationen, das ist der eigentliche Text, noch unzählige Steuerzeichen und Formatieranweisungen. Und mit diesen Zusatzinformationen kann Ihr Programm herzlich wenig anfangen. Bevor Sie nun die alten Dateien verzweifelt löschen und alles noch einmal neu eintippen, sollten Sie diesen Artikel lesen. Mit Hilfe der Editorfunktionen aus »Mortimer Plus« und einiger selbstgeschriebener Kommando-Zeilen lassen sich solche Dateien nämlich schnell zu reinen ASCII-Texten umformen.

Falls Sie kein »Mortimer Plus« besitzen, nehmen Sie doch einfach die Demo-Version, die sich auf derTOS-Diskette der Ausgabe 10/91 befindet. Dieses Demo steht Ihnen allerdings jeweils nur eine halbe Stunde zur Verfügung. Neben Mortimer Plus benötigen Sie noch die CMD-Datei auf der TOS-Diskette zu dieser Ausgabe und beispielsweise ein Inhaltsverzeichnis der TOS, das als Adimens-Export-Datei ebenfalls auf der TOS-Diskette vorliegend.

Schauen Sie sich die Menüpunkte im Mortimer-Editor an. Alle sind sowohl über die Maus als auch über eine Tastenfolge anwählbar. Dabei bedeutet das Zeichen C die gedrückte Control Taste, SA heißt, Sie müssen zusätzlich eine Shift-Taste gedrückt halten. Die Pfeile im Menü Cursor meinen die Pfeiltasten im Cusorblock Ihrer Tastatur.

Soweit dürfte alles klar sein. Neben dem Editor Nr.1, in dem Sie sich jetzt befinden, verwaltet Mortimer Plus noch drei weitere Textspeicher, sinnigerweise als Editor 2, Editor 3 usw. bezeichnet. Die vier Editoren erreichen Sie über die Funktionstasten Fl bis F4, wobei Mortimer Ihnen nach jedem Wechsel in der rechten oberen Bildschirmecke anzeigt, in welchem Editor Sie sich zur Zeit befinden. In jedem Textspeicher dürfen Sie beliebige Texte schreiben.

Eine für uns wichtige Besonderheit ist Mortimers Fähigkeit, Blöcke von einem Textspeicher in den anderen zu übernehmen. Hierzu sollten Sie jetzt einmal die Adimens Export Datei (*. EXP) in den ersten Editor laden. Lassen Sie sich durch das vielleicht ungewohnte Aussehen des Textes nicht irritieren, wir kommen später noch darauf zurück. Markieren Sie einfach ein paar Zeilen als Block, und zwar als wichtige Übung(!ü), bitte nicht mit der Maus, sondern ausschließlich über die Tastatur. Nachdem Sie nun in einen freien Editor gewechselt haben, übernehmen Sie den eben markierten Block, indem Sie Alternate + Enter drücken. Hier ist übrigens die Taste Enter aus dem Ziffernblock rechts gemeint. Sie sehen, daß wie von Geisterhand geschrieben der Block auf dem Monitor erscheint.

Wichtig: Sie übernehmen immer genau den Block aus dem Editor, in dem Sie sich vor dem Wechsel befunden haben! Steht ein Block sowohl in dem ersten und dem zweiten Editor, und Sie wechseln von 1 nach 2 und erst dann nach 3, so erscheint hier nach dem Aufruf Block einspielen über Alternate + Enter der Block aus Editor 2! Damit sie aber jetzt auch sehen, worauf ich mit diesen Erklärungen hinaus will, laden Sie bitte die CMD-Datei zu diesem Artikel in den zweiten Editor und definieren sie als Block. Spielen Sie diesen Block in den Editor 1 ein, wo sich hoffentlich noch die Adimens-Datei befindet. Nach einigen Eskapaden sollte sich auf dem Bildschirm ein schönes, übersichtliches Inhaltsverzeichnis im Editor befinden. Für die folgenden Erklärungen sollten Sie hier jetzt wieder die ursprüngliche Datei laden und dann in den Editor mit der CMD-Datei wechseln. Zur besseren Übersicht verstecken Sie die Blockmarkierung mit Control + H.

Lassen Sie sich durch das wilde Aussehen der Datei nicht abschrecken. Wir lösen jetzt den Knoten. Sie wissen bereits, daß Sie alle Menüfunktionen über Tastenkombinationen erreichen. Um nun eine CMD-Datei selbst zu schreiben, müssen Sie Mortimer anweisen, die betreffenden Tastaturkommandos nicht sofort auszuführen, sondern als Befehlsfolge auf den Schirm zu bringen. Zu diesem Zweck schalten Sie den Editor in den ASCII-Modus. Das heißt, Sie drücken Control + A. Wenn Sie nun einen Buchstaben in Verbindung mit den Zusatztasten Control ; Shift oder Alternate drücken, so führt Mortimer nicht den zugehörigen Befehl aus, sondern schreibt eine Zeichenkette auf den Schirm.

Voll Tastatur-gesteuert

Setzten Sie einmal den Cursor unter den Text der CMD-Datei und geben die folgende Tastenfolge ein: Control + A, Control + R. Sie sehen, daß das ausgegebene Zeichen exakt dem ersten Zeichen in der CMD-Datei entspricht. Würden Sie dieses Steuerzeichen als Block markieren und in einen anderen Textspeicher einspielen, so hätten Sie die Funktion Ersetzen aufgerufen. Also, für jeden Befehl, den Sie als Zeichenfolge in den Editor schreiben wollen, müssen Sie erst den ASCII-Modus einschalten und dann die betreffende Tastenkombination für den Aufruf drücken. Wichtig: der ASCII-Modus muß für jedes Befehlszeichen oder Kommandosequenz, die Sie erzeugen wollen, neu eingeschaltet werden. Schreiben Sie zum Üben solche Kommandosequenzen für die Funktionen Ersetzen, Laden und für die Taste ESC. Letztere dient zum Löschen einer Eingabezeile in einer Dialogbox. Diese Sequenzen finden sie in der CMD-Datei wieder. Ihre eigenen Befehle können Sie ja zum Testen irgendwo einspielen. Zum Schreiben der Kommandosequenzen benötigen Sie außerdem Befehle, die sich nicht über den ASCII-Modus schreiben lassen. Dazu gehören z.B. die Funktionstasten und Cusorbewegungen mit den Pfeiltasten. Sie schreiben z.B. eine Kommandosequenz zum Aufwärtsbewegen des Cursor, indem Sie Control+ Shift+A und dann Pfeiltaste hoch drücken. Die ausgegebene Zeichenfolge enthält spezielle Zusatzinformationen für Mortimer. Zusammengefaßt heißt das, jede Befehlssequenz wird über den ASCII-Modus als Zeichenfolge ausgegeben. Gegebenenfalls müssen Sie zusätzlich Shift gedrückt halten.

Nun haben Sie schon beinahe das gesamte Handwerkzeug zusammen, um eigene Kommando-Dateien zu schreiben. Sie überlegen zuerst, welche Umformatierungen Sie erreichen wollen. Wenn nötig führen Sie alle Schritte einzeln mit der Maus aus und machen sich Notizen. Notieren Sie dabei sofort die erforderlichen Tastenkombinationen. Zeichenketten, die Sie z.B. Suchen wollen, geben Sie direkt hinter dem Befehlszeichen für Suchen ein. Sie sollten aber vorher das Kommando für ESC erzeugen, damit die Eingabezeile auch wirklich gelöscht ist. Wie Sie zwischen den Eingabezeilen auf und nieder springen, sollte Ihnen nach den obigen Zeilen klar sein.

Falls Sie aufmerksam die CMD-Datei studiert haben, fällt Ihnen auf, daß sich hier überhaupt keine »lesbaren« Zeichenketten befinden. Richtig! Und damit kommen wir zum wirklich letzten Teil. Ihre Adimens-Export-Datei weist zusätzliche Zeichen auf. Neben diesen sichtbaren Informationen gibt es auch unsichtbare. Diese entdecken Sie, wenn Sie im betreffenden Editor die Tastenkombination Shift+F5 drücken. Voilà, Sie befinden sich im Hex-Modus. Alle Datei-Informationen sind links als ASCII-Zeichen und rechts als Hexadezimalzahl dargestellt. Die unsichtbaren Zeichen wie Zeilenumbruch oder Leerzeichen weisen die Hexzahl 0D 0a bzw.20 auf. Die Anführungszeichen sind hingegen unter der Hex-Zahl 22 zu finden. Sie dürfen alle Hex-Zahlen auch in den Dialogboxen für Suchen oder Ersetzen usw. verwenden. Nur müssen Sie diesen Zeichen ein $ als Hinweis für Mortimer vorstellen. Trennende Leerzeichen vor, hinter sowie zwischen mehreren Hex-Zahlen fallen einfach weg. (wk)

Bild 1. Alle Menüpunkte von Mortimer lassen sich über Tastatur steuern
Bild 2. So sieht eine CMD-Datei in Mortimer aus
Bild 3. Mortimer räumt mit den Steuerzeichen auf

Andreas Wischerhoff
Aus: TOS 02 / 1992, Seite 56

Links

Copyright-Bestimmungen: siehe Über diese Seite