Programmer's Corner 2/92 Professionell Programmieren: Verwendung von Ressourcedateien Wer schon längere Zeit programmiert und darauf achtet, seine Programme immer besser zu gestalten, sie Stück für Stück an die Qualität kommerzieller Programme anpaßt, wird es früher oder später bemerken: Der effektive Teil des Programms, d.h. der Teil, der den Sinn und Zweck des Programms darstellt, schrumpft relativ zu dem Berg an Programmcode, der für die Benutzer- führung und die Bildschirmausgaben zuständig ist. Klartext: Der Benutzer von Computerpro- grammen fordert heute Komfort. Jede mögliche Fehleingabe soll vom Programm abgefangen werden, der Benutzer soll jederzeit über die Eingabemöglich- keiten aufgeklärt werden. Und ein ausgeklügeltes Hilfesystem darf auch nicht fehlen. "Da hat der Benutzer ja recht", sprach der gestresste Pro- grammierer, "aber wo soll ich in den 32 KByte Basic-Arbeitsspeicher das Programm UND die Benutzerführung unterbringen? Auf anderen Computer kann soetwas ja klappen, die haben ja auch viel mehr Speicher..." Und es geht doch... Die konventionelle Programmiertechnik sieht so aus: Bildschirmmasken und Bildschirmausgaben werden als PRINT-Anweisungen im Programm codiert. Sollen bestimmte Informationen auf dem Bildschirm erscheinen, so verzweigt das Programm zu diesen PRINT-Befehlen und gibt die Texte und Daten auf dem Bildschirm aus. Hier wird aber Speicherplatz verschwendet. Eine komplexe Bildschirmmaske in PRINT-Anweisungen beschrieben, nimmt gut und gerne bis zu 1 Kilobyte Speicher in Anspruch, und das auch, wenn die Bildschirmmaske gerade nicht auf dem Bildschirm gezeigt wird. Werden viele Bildschirmmasken benötigt schrumpft der Speicher schnell zusammen und es bleibt kein Platz für die produktiven Teile des Programms oder wichtige Daten. Um dies zu verhindern kann man Ressourcedateien einsetzen. Die Ressourcedatei Ressourcedatei beinhaltet Daten, die erst dann in den Arbeitsspeicher geladen werden, wenn sie wirklich benötigt werden. Wenn sie überflüssig geworden sind, werden sie aus dem Speicher entfernt. Es gibt verschiedene Arten von Ressourcedateien, prinzipiell kann jede Art von Daten in eine Ressourcedatei ausgelagert werden: Texte, Bildschirmmasken, Grafik, Musik, Berechnungstabellen uvm. Die beim ATARI bekanntesten Ressourcedateien sind wohl die Zeichensatzdatein (.FNT). Über die Speicherplatzersparnis hinaus bietet die Ressourcedatei noch einige andere Vorteile. Die Ressourcen können (und sollten) unabhängig vom Programm editiert werden. Ein Beispiel: Man hat ein mathematisches Berechnungsprogramm in TURBO-BASIC geschrieben und alle Hilfetexte und Bildschirmausgaben als ASCII-Texte in einer Ressourcedatei gespeichert. Wenn man das Programm compiliert weitergibt, so können diese Texte übersetzt werden (englisch, holländisch), ohne das der Übersetzer (der nicht der Programmierer ist) den Programmcode kennt. Nachteile Aber die Verwendung von Ressource- dateien hat auch einige Nachteile. Zum Erstellen und Verwalten der Ressourcen benötigt man spezielle Programme. Da es solche Programme z.Z. für den Atari noch nicht gibt, muß man sie sich selbst erstellen. Daher lohnt sich das arbeiten mit Ressourcedateien erst bei größeren Programmprojekten. Soviel zur Theorie, auf zur praktischen Erprobung. Auf der Diskette findet ihr ein einfaches Programm, welches das Prinzip von Ressourcedateien erläutert. Es wird eine vordefinierte Bildschirmmaske in den Bildschirm- speicher geladen und dann mit Daten gefüllt. In der nächsten Ausgabe gibt es dann einen Maskeneditor um solche Masken einfach erstellen zu können und Routinen um die Masken in eigene TURBO-BASIC Programm einbinden zu können. Bis dahin Ciao... Carsten Strotmann