Library 2.8 FredFish 134 ----------- Einleitung Die Speicherung von Daten verschiedenster Art ist wohl die am meisten genutzte Anwendung eines Computers. Es gibt eine Vielzahl verschiedenster Programme für die Datenverwaltung, Textverarbeitung und ähnliches. Datenbanken benutzen normalerweise für alle Einträge ein bestimmtes Format - und für gewöhnlich müssen alle Datensätze die gleiche Länge haben. Textverarbeitungsprogramme wiederum stellen keine Bedingungen an Format und Größe der Einträge, dafür ist es bei ihnen schwieriger, bestimmte Files zu finden, vor allem bei einer größeren Anzahl zusammengehöriger Files. "Archiv"-Programme ( = gepackte Text- ablagen ) stellen wie Textverarbeitungen keine Ansprüche an Format und Größe der Datenfiles. Da sie aber die Dateien gepackt ablegen, ist es noch schwieriger, auf die Daten zuzugreifen. Textverarbeitungen wie Datenbanken vergeuden Speicherplatz. Letztere durch die einheitliche Größe der Datensätze, Textfiles ( wie überhaupt alle "normalen" Files ) durch die Tatsache, daß sie immer nur ganze Blöcke belegen, seien diese nun 128 Bytes ( das alte CP/M ) oder 512 Bytes groß ( AMIGA ). Dadurch wird im Durchschnitt pro File ein halber Block verschwendet. Es wäre ein großer Fortschritt, die Files dichter abzulegen und dabei trotzdem die Übersicht zwecks schnellen Zugriffs zu erhalten. Genau dieses tut das Programm LIBRARY. Es legt die Files ohne Rücksicht auf ihre Datenstruktur eng beieinander ab und erlaubt trotzdem das schnelle Auf- finden mit Hilfe von Suchwörtern, -phrasen oder auch komplexeren Methoden. Daneben ermöglicht es direkten Zugriff auf das CLI. Das Programm ist voll- ständig menügesteuert und dadurch sehr anwenderfreundlich. Beschreibung Das Programm LIBRARY ist vollständig in Assembler geschrieben. Daneben steht Ihnen ein zweites Programm zur Verfügung, welches das alphabetische Sortieren aller Files und das Entfernen von `deleted´ Files in der Library ermöglicht. Dies muß nicht allzu oft geschehen, ermöglicht dann aber einen wesentlich schnelleren Zugriff. Das Programm kann vom CLI sowie von der WORKBENCH aus gestartet werden. Nach dem Start fragt das Programm nach dem Namen der gewünschten Library. Wird ein Name eingegeben, so wird dieses File geöffnet. Existiert kein solches File, so wird gefragt, ob der eingegebene Name der eines noch zu erstellenden Files ist: " Do you want to create it?". Nach der Eingabe von "yes" legt das Programm zwei Files an, eines mit dem Zusatz ".lbr", ein anderes mit ".ndx". Ist die Antwort dagegen "no", so kehrt das Programm zu CLI oder WORKBENCH zurück, Nach dem Anlegen dieser Files, oder wenn die Library schon existiert, er- scheint ein Menü: Enter Selection [ ] 1. Add File 6. Delete File 2. Diplay File 7. Rename File 3. Display Directory 8. New CLI 4. Keyword Search 9. Logical Search 5. Write File to Disk Q. Exit Program Das Programm kann durch Drücken von < Q > verlassen werden. ADD FILE = Hinzufügen eines Files Dies ist die grundlegende Funktion des Programmes. Ein mit einem der vielen AMIGA-Editoren erstelltes Textfile wird von Disk gelesen und der Library hin- zugefügt. Wird dieser Menüpunkt angewählt, so wird man nach dem bisherigen Namen des Files gefragt, welches dann gesucht wird. Wünscht man ins Menü zu- rückzukehren, so gibt man < Return > auf dem ersten oder < ESC > auf einem beliebigen Zeichen ein. Nun wird man gefragt, ob man diesem File beim Ab- speichern in der Library einen neuen Namen geben will. Dieser Name kann vorangestellte oder eingeschlossene Leerzeichen sowie alle druckbaren Zeichen enthalten. Nach Eingabe dieses Namens liest das Programm das File ein und legt es in der Library ab. Nun ist das File Bestandteil der Library und kann mit allen Optionen des oben beschriebenen Menüs angesprochen werden. Unmittelbar nach dem Hinzufügen des Files wird es in das interne Directory der Library aufgenommen. Die Einträge in diesem Directory werden der Einfachheit halber alle in `upper case´ ( = Großbuchstaben ) abgelegt. Namensgleichheit ist erlaubt, aber nicht empfehlenswert, da diese zu Störungen beim Suchen oder Schreiben von Files führen kann. Das günstigste Format für Textfiles ist der linksbündige Satz, und wenn immer möglich, sollten die gebräuchlichsten Wörter oder Phrasen des Textes an seinem Beginn stehen. Das ist nicht unbedingt erforderlich, beschleunigt aber wesentlich die Suche und Identifizierung längerer Files, da das Programm nicht erst den ganzen Text "lesen" muß. DISPLAY FILES = Anzeigen eines Textes Ein weiterer wichtiger Menüpunkt ist das Anzeigen eines Files oder `records´. Hat man DISPLAY FILE angewählt, so prüft das Programm, ob ein Index vorhanden ist ( er wird von einer der Such-Routinen erzeugt ). Existiert ein solcher, wird gefragt, ob der Anwender diesen benutzen will. Jede Eingabe außer "y" oder "Y" führt zur Ausgabe eines Requesters, welcher nach dem Namen des anzuzeigenden Files fragt. Geben Sie nur soviel Zeichen des Namens wie unbedingt nötig ein. Das Programm gibt dann das oder die gewünschten Files aus. Zum Menü kommt man durch Eingabe von < Return > oder < ESC > zurück. Ist "Index" angewählt worden, so werden alle bei der letzten Suche angewählten Files in alphabetischer Reihenfolge ausgegeben. Es werden jeweils 20 Zeilen angezeigt und dann pausiert. Mit < Return > werden der Schirm gelöscht und die nächsten 20 Zeilen ausgegeben. Entsprechen dem eingegebenen Filenamen mehrere Files, so wird zwischen den einzelnen Files die Ausgabe ebenfalls angehalten. DISPLAY DIRECTORY Dieser Menüpunkt gibt eine sortierte Liste aller augenblicklich zur Library gehörigen Files aus. Ist der Bildschirm voll, so hält das Programm die Ausgabe an und wartet auf < Return >. KEYWORD SEARCH = normales Suchen Das ist die erste Methode, um Files mit Hilfe bestimmter in ihnen enthaltenen Wörtern aufzufinden. Das Programm fragt nach einem Wort oder einer Phrase als Suchkriterium und beginnt nach Eingabe mit der Suche. Der Suchvorgang kann durch Drücken einer beliebigen Taste unterbrochen werden. Die Namen der Files, welche gerade durchsucht werden, werden ebenso angezeigt wie die, in denen die Suchwörter oder -phrasen enthalten sind. Die Suchgeschwindigkeit ist abhängig von der DOS-Version. Das Durchsuchen einer Library mit 130 Files von insgesamt 109 KByte auf einem Laufwerk unter DOS 1.2 benötigt weniger als 20 Sekunden. Als Joker beim "wild-carding" ist nur das Zeichen "?" erlaubt. Dabei macht das Programm keinen Unterschied zwischen einem LINEFEED und einem SPACE. WRITE FILE TO DISK Die Textfiles in der Library abgelegt zu haben, bringt keinen Nutzen, wenn man nicht auch schnell auf sie zugreifen kann, um sie z. Bsp. in einen Editor zu laden oder ausdrucken zu lassen. Diese Option ermöglicht das Schreiben eines Files der Library auf Diskette. Zuerst prüft das Programm wieder, ob ein Index für die Suche existiert. Ist dies der Fall. fragt es, ob dieser verwendet werden soll. Wird nicht mit "y" oder "Y" geantwortet, oder liegt kein Index vor, so wird nach dem Filenamen gefragt. Bei dieser Eingabe ist es wiederum nicht nötig, den ganzen Filenamen einzugeben. Es genügen soviel Zeichen wie zur eindeutigen Bestimmung des oder der Files nötig sind. Danach will das Programm den Namen des Disk-Files wissen, unter welchem geschrieben werden soll. Wie bei allen Requestern genügt auch hier ein < Return > oder < ESC >, um zum Menü zurück- zukehren. Das Programm erzeugt nun das entsprechende File, wobei alle gleichnamigen Files gelöscht werden. Anstatt des Disk-Filenamens kann auch "prt:" eingegeben werden, wenn eine Hardcopy erstellt werden soll. Wurde "Index" angewählt, werden alle bei der letzten Suche angewählten Files ausgegeben. DELETE FILE Die "Delete"-Funktion arbeitet ähnlich den anderen Menüpunkten, mit dem Unter- schied, daß der eingegebene Filename hier exakt dem tatsächlichen entsprechen muß. Das File wird nach der Eingabe seines Namens markiert und anschließend im Directory ausgetragen. Der Filetext selber befindet sich natürlich noch in der Library und kann mit Hilfe eines Editors wie "MicroEmacs" oder "Ed" wiederge- wonnen und der Library erneut einverleibt werden. Er bleibt solang erhalten, bis er z. Bsp. durch Anwendung des Programmes "PackIt" entgültig getilgt wird. RENAME FILE Files werden leider nicht immer unter dem für sie günstigsten Namen abgespei- chert, was die spätere Erkennung und Bearbeitung oft erschwert. "Rename" erlaubt das Umbenennen von Files. Wählt man diese Option an, so wird man nach dem "alten" und neuen Filenamen gefragt. Zurück zum Menü kommt man auch hier durch Eingabe von < Return > auf der ersten Zeichenposition. Die Eingabe des alten Namens sollte möglichst exakt dem alten Directory-Eintrag entsprechen. Umbenannte Files werden wieder ordungsgemäß ins Directory ein- sortiert. LOGICAL SEARCH Der wirkliche Wert eines Programmes wie diesem liegt in der Möglichkeit, Daten nach bestimmten Kriterien suchen zu können. Diese Suchmethode gleicht in Bedienung und Schnelligkeit dem normalen Suchen, besitzt aber einige Besonder- heiten. Wie gewöhnlich fragt das Programm nach Suchwort oder -phrase. Wurde dies eingegeben, so erscheint ein Mini-Menü mit den Punkten 1. " and ", 2. " or " und 3. "and not ". Ist hier die Wahl getroffen, so fragt das Programm ein zweites Mal nach Such- wort oder -phrase. Die Suche wird nun fortgesetzt und ist nur wenig langsamer als die normale Suche. Diese Art der Suche erlaubt dafür aber das Auffinden ganz spezieller Dokumente, Daneben gibt es noch die Suche nach "disk" AND NOT "hard" sowie nach "disk" OR "floppy" und natürlich noch die Suche nach Files auf "disk" AND "floppy". NEW CLI Dieser Menüpunkt öffnet einen neuen Screen. Es ist ein Standard-Window mit vollem Zugriff auf das CLI des AMIGA. Verlassen kann man das CLI mit dem dafür üblichen Befehl "endcli". Weitere, nicht menü-gesteuerte Funktionen Umfassendes Suchen ist sehr zeitaufwendig. Das Programm LIBRARY entwickelt bei der Suche eine maximale Geschwindigkeit von etwa 15 KByte pro Sekunde. Bei dieser Geschwindigkeit und einer Library mit rund 32 MByte benötigt das Programm also 35 Minuten für einen Suchvorgang. Da dies für die meisten Anwendungen unzumutbar ist, besitzt das Programm auch noch eine schnellere Such-Funktion für übergroße Files. Diese durchsucht nur die ersten 512 Bytes, wenn das File länger als 512 Bytes ist - andernfalls das ganze File. Dies reduziert die maximale Anzahl der Lesevorgänge auf einen pro File bzw. etwa 500 bei maximaler Filelänge. Das Programm führt diese schnelle Suche in einer Zeit unter 2 Minuten durch, falls eine Harddisk verwendet wird. Diese Art der Suche erfolgt linear, nicht `logisch´ und wird durch Drücken von < F > im Menü ausgelöst. Der Programmierer hat sich natürlich auch im Programm verewigt. Seine Personaldaten können durch Drücken von < I > abgerufen werden. Das Programm LIBRARY läuft auf den AMIGA-WORKBENCH-Versionen 1.1 und 1.2. Es wurde auf 5.1/4"- und 3.1/2"-Laufwerken getestet und arbeitet mit den Pro- zessoren 68000 und 68010. Die einzige Einschränkung ist die maximale Zahl von 500 Files in einer einzelnen Library, wobei die maximale Filegröße 64KByte beträgt ( bei einer maximalen Größe der Library von 32 MByte ). Jede Art von File kann in der Library abgelegt werden, wogegen die Suche in Modulen aus Objektcode natürlich sinnlos ist. dtsch.v.K.H.Hensel, 26.06.88