README zu FINDFILE Letzte Žnderung: 12.02.90 FINDFILE ist vollst„ndig in OMIKRON.Basic geschrieben und erschien im Dezember '89 erstmals in der Version 1.01. Seitdem wurde und wird es st„ndig weiterentwickelt. Fragen und Vorschl„ge sowie Hinweise auf Fehler nehme ich gerne entgegen, sie werden so schnell wie m”glich in den neuesten Versionen bercksichtigt. Das Programm l„uft ab Version 1.04 als Accessory und als Programm: einfach die Programmdatei FINDFILE.ACC umbenennen in FINDFILE.PRG. Aužerdem kann bei Einsendung einer Diskette (Rckporto) eine kostenlose DEMO-Version bezogen werden, welche mit allen Features der Vollversion, jedoch nur mit der festen Suchmaske "*.PRG" arbeitet. Adresse: Dipl.Ing. Marcel Rameil Winnendonk 22 4005 Meerbusch 1 Thema Speed: eine 85MB-Platte mit 28ms und 5830 Dateien wird in etwa 60s vollst„ndig durchsucht, wenn nichts gefunden wird. Bei einer Ausgabe auf den Bildschirm und Suche nach *.* dauert das ca. 3.30 min, genau wie bei Ausgabe in eine Datei. Es wird eine Datei von etwa 400kByte Gr”že erzeugt (Das macht ca. 76 Bytes pro Eintrag). Alle Zeiten wurden mit dem Softwareblitter TURBO ST V1.6 (Bela Computer) auf einem 1040ST ohne Blitter (!) gemessen, mit Blitter drften sich die Zeiten nochmals leicht verbessern. Ohne Turbo dauert die Bildschirm-Ausgabe dreimal und die Datei/Drucker-Ausgabe 1.2 mal so lang, da von Findfile die VDI-BITBLT-Funktion intensiv genutzt wird und alle Textausgaben ber GEM laufen. (Textausgaben und Bit-Blit-Bl”cke beginnen aber auf einer horizontalen 8-Pixel-Grenze auf dem Bildschirm, um die Geschwindigkeit zu verbessern). FINDFILE belegt in der Version 1.04 mit Bildschirm-Rettung 99278 Bytes im RAM, ohne Rettung 83784 Bytes. An der Verringerung des Speicherplatzbedarfs wird heftig gearbeitet. (Garnicht so einfach mit Basic...) Ab Version 1.05 wurde die Bildschirm-Rettung ganz gestrichen, der Speicherbedarf betr„gt nun 80422 Bytes. Da - mit Ausnahme der Ausgabe der Suchergebnisse in eine Protokolldatei - nur lesend auf die Platte/Diskette zugegriffen wird, sind keine Probleme bei der Arbeit mit dem Programm in Bezug auf die Sicherheit Ihrer Daten auf der Platte zu befrchten. Bekannte Unzul„nglichkeiten der aktuellen Version - FINDFILE l„uft nicht unter Multidesk von Bela-Computer (Meldung: "Lesefehler bei FINDFILE.ACC"). Irgendwas im Programmheader des OMIKRON-Compilers scheint nicht ganz sauber zu sein (unter TOS installiert sich das Accessory anstandslos). - FINDFILE l„uft nicht mit externem GDOS (Buserror in der Basic-Routine Appl_Init bei der Fensterdaten-Initialisierung, da das GDOS Variablen, die vom Basic benutzt werden, auf 0 setzt oder die Fehlermeldung "Invalid Handle" vom AMCGDOS, falls diese Version verwendet wurde. Meist strzt der Rechner dann direkt ab, beim AMCGDOS konnte man manchmal noch das Accessory auf der Platte umbenennen. - FINDFILE l„uft nicht mit einem Grožbildschirm (der Bildschirm wird beim Start eines Omikron-Programmes auf dem ATARI SM 194 total versaut, auch auf einer neuen VDI- Workstation, auch unter GEM. Auf einem Matrix- Grožbildschirm blieb dieser hartn„ckig dunkel beim Booten, der Rechner h„ngte sich total auf (War allerdings noch TOS 1.0 drin). Der Matrix verwendet einen externen VDI-Treiber ber das AMCGDOS. Die genaue Treiberarchitektur des ATARI SM 194 ist mir noch nicht ganz klar. Die Macke mit den Grožbildschirmen scheint jedenfalls in der Bildschirm- Initialisierung des Omikron-Compilers liegen, da saubere Programmierung (GEM, VDI) dem Problem nicht abhalf. - Ein Start bei einer Farbaufl”sung wird abgefangen. Falls Sie Hinweise zur L”sung der ersten drei Probleme haben, bin ich immer sehr fr neue Vorschl„ge und Tips dankbar. Kurzanleitung FINDFILE: >>> Allgemeines <<< In dem Hauptfenster sind alle Funktionen sowohl mit der Maus (linke Maustaste) als auch mit der Tastatur anw„hlbar. Die entsprechenden Tasten sind in den Buttons links unten noch einmal aufgefhrt. Fehlbedienungen sollten eigentlich unm”glich sein, fr Verbesserungsvorschl„ge bin ich immer sehr dankbar. FINDFILE sucht Dateien auf beliebigen Laufwerken. Alle GEMDOS-Laufwerke werden untersttzt (Bionet, ik h”r Dir trapsen), nicht vorhandene sind jedoch nicht anw„hlbar. Bei jedem Bild-Neuaufbau des Accessories wird neu (BIOS 10) geprft, ob evtl. neue Laufwerke (Ramdisks) angemeldet wurden oder einige gel”scht wurden. Nun sollten die zu durchsuchenden Laufwerke angew„hlt werden (Tasten "A" bis "P", Insert, Delete oder Mausklick). >>> Eingabe der Suchmaske <<< Jederzeit kann man mit der Taste "1" oder per Mausklick in den Button "Suchmaske" die Suchmaske eingestellt werden. Wildcards "?" und "*" sind nach GEMDOS-Konventionen erlaubt, "?" steht fr einen einzigen beliebigen Buchstaben, "*" steht fr einen oder mehrere beliebige Buchstaben. Beispiele: *.PRG findet alle Dateien, die die Endung ".PRG" im Dateinamen tragen, "STAD0?.P*" wrde die Dateien "STAD01.PIC", "STAD05.PAC", STAD00.PUF", aber nicht die Dateien "STAD001.PIC" oder "STAD01.SEQ" finden. , oder Mausklick links beenden die Eingabe der Suchmaske, Mausklick rechts entspricht dem Drcken der Escape-Taste und l”scht die Eingabezeile. Mit Undo l„žt sich die voreingestellte Suchmaske restaurieren, CTRL-Pfeiltasten wechseln an den Anfang/ an das Ende der Eingabezeile, Backspace und Delete funktionieren wie gewohnt. Ist eine Suchmaske von "*.*" vorgegeben, so wird diese beim ersten Tastendruck (aužer ) gel”scht. Wird eine leere Suchmaske eingegeben (Escape, ), so wird "*.*" eingestellt. Gibt man einen Punkt "." ein, so wird der Extender gel”scht, die eingegebene Zeile vor dem Punkt mit Leerzeichen aufgefllt und der Cursor direkt hinter den Punkt platziert. Die aufgefllten Leerzeichen werden bei Eingabe von Backspace wieder gel”scht, wenn der Cursor dabei direkt hinter dem Punkt steht. >>> Einstellung des Ausgabekanals, Start der Ausgabe <<< Anschliežend kann der Ausgabekanal (Datei, Drucker oder Monitor) gew„hlt werden. Wurde kein Ausgabeger„t angew„hlt, wird der Monitor voreingestellt. Wurde kein Laufwerk gew„hlt, kann man zwischen dem aktuellen Laufwerk (GEMDOS 25), allen Laufwerken ab C: oder einem Abbruch der Suchfunktion w„hlen. Wurde "Datei" gew„hlt, wird man zur Eingabe des kompletten Pfadnamens der Ausgabedatei in einer File-Selector-Box aufgefordert. Bei TOS-Versionen ab 1.4 wird der Fsel_Exinput-Aufruf verwendet (mit Meldung in der Titel-Zeile!). Voreingestellt ist der mit GEMDOS 71 ermittelte aktuelle Pfad mit dem Dateinamen "FINDFILE.LOG". Die Ausgabe auf den Drucker ist mit der Ausgabe in eine Datei bis auf's Byte identisch. Ausgegeben wird -falls die entsprechende Datei der eingegebenen Suchmaske und den anderen Suchkriterien gengt (Startordner, Archivbit und Datei-Datum, siehe unten...)- der Dateiname, die L„nge, der Pfad, die Uhrzeit und das Datum der letzten Žnderung und eventuell gesetzte Attributbits, getrennt durch Kommata und linksbndig justiert, rechts mit Spaces aufgefllt. Ordner und Diskettennamen werden nicht ausgegeben. Das Ausgabeformat ist reiner ASCII- Text, nur Grožbuchstaben (fr die Daten, Header und Schlužzeile enthalten auch Kleinbuchstaben). Das Zeilenendende wird durch $0D,$0A (CR,LF) markiert. Ein einfacher Import der Ausgabedatei in Textverarbeitungssysteme mit ASCII- Schnittstelle (TEMPUS, 1ST_WORD, 1ST_ADRESS, CALAMUS, SIGNUM! etc.) ist somit gew„hrleistet. >>> Start-Ordner eingeben <<< Ab Version 1.03 sind noch drei Buttons fr Optionen vorhanden. Mit "Ordner" kann ein Ordner vorgegeben werden, in dem FINDFILE suchen soll. Das ist sinnvoll, wenn man von einer Datei genau weiž, daž sie in einem bestimmten Ordner sein muž, und wenn man die zeitraubende Suche bewužt nur auf einen Ordner beschr„nken will. Es werden aber auch alle Ordner, die in dem Start- Ordner liegen, durchsucht. Die Option ist nur dann anw„hlbar, wenn maximal ein Laufwerk selektiert ist. Ist kein Laufwerk selektiert, so wird das aktuelle GEMDOS-Laufwerk aktiviert. Bei mehreren aktiven Laufwerken wird man auf den Bedienfehler hingewiesen. Žndert man die Laufwerks-Selektierung bei eingestelltem Start-Ordner, so wird die Option automatisch abgeschaltet (Ab V1.05 auch bei den Buttons "Alle ab C:" und "Keines"). Der Ordnerpfad kann genau wie der Ausgabedatei-Pfad in einer File-Selector-Box eingestellt werden. Eingegebene Dateinamen werden ignoriert. Wechselt man das Laufwerk innerhalb der File-Selector-Box, so bernimmt FINDFILE das neue Suchlaufwerk. Ab TOS 1.4 ist die Eingabe falscher Pfadnamen ber Tastatur in der File-Selectorbox nicht mehr m”glich, da das TOS nach einer Eingabe eines Pfades in die INDEX-Zeile der File-Selector-Box prft, ob der Pfad auch wirklich vorhanden ist. Ist er es nicht, erscheint die bekannte Meldung "Diese Anwendung kann das angegebene Objekt nicht finden.". Nachdem der Pfad eingegeben wurde, testet FINDFILE trotzdem, ob es den Pfad auch wirklich gibt (es soll ja noch Leute geben, die ohne TOS 1.4 arbeiten [Ts,ts!]). Falls der Pfad ungltig war, erfolgt eine Fehlermeldung. >>> Archivbit-Eingabe <<< Mit dem Button "Archiv" kann die Ausgabe der gefundenen Dateien beschr„nkt werden auf Dateien, welche das Archivbit entweder gesetzt oder gel”scht haben. Das Archivbit wird ab TOS 1.4 angeblich (laut ATARI) korrekt verwaltet und von einigen Backup-Programmen verwendet. Klick auf "..egal" schaltet die Auswahl nach Archivbit wieder ab. >>> Datums-Eingabe <<< Mit "Datum" kann man Dateien suchen, welche genau von einem bestimmten Datum, jnger oder „lter als das eingestellte Datum sind. Zuerst muž man das gewnschte Bezugsdatum eingeben. Eingabe eines leeren Datums "__.__.__" (Esc, Del oder rechte Maustaste) schaltet die Funktion ab. Es sind nur Ziffern bei der Eingabe erlaubt. Undo funktioniert genauso wie die Cursortasten. Beim ersten Einschalten und nach jedem Abschalten der Datums- Funktion (Abschaltung durch Eingabe eines leeren Datums) ist das aktuelle Systemdatum voreingestellt. Nach Abschluž der Eingabe mit , oder linker Maustaste erfolgt eine Plausibilit„tsprfung. Bei einer fehlerhaften Eingabe (Monat>12 oder Tag>31) wird die Funktion nach einer Fehlermeldung abgebrochen, aber Vorsicht: der 30.2.90 beispielsweise w„re ein gltiges Datum! Also selber aufpassen, ob die Monate 30 oder gar 28 Tage haben! War die Eingabe korrekt, so kann man in einer Alertbox w„hlen, ob alle Dateien angezeigt werden sollen, die jnger, „lter oder genau vom eingestellten Datum (Button "Datum") sind, das eingegebene Datum wird zur Sicherheit nochmal angezeigt. Bei der Anzeige von "jnger" und "„lter" werden auch die Dateien vom eingestellten Datum angezeigt. Die Reihenfolge dieser Einstellungen ist brigens beliebig. Aktive Optionen bzw. Ausgabekan„le werden im Hauptfenster invertiert dargestellt. >>> Der Suchvorgang <<< Es werden alle gefundenen Dateien angezeigt (auch versteckte und System- Dateien). Ordner- und Diskettennamen werden nicht angezeigt. FINDFILE findet Dateien bis zu einer theoretischen Tiefe von 13 Ordnern. Da das TOS nur eine maximale Ordnertiefe von 8 Ordnern untersttzt, kann hier kein Problem entstehen. Falls man nur Bildschirmausgabe gew„hlt hatte und mehr als 15 Dateien gefunden werden, kann man sich noch nachtr„glich fr eine Ausgabe in eine Datei oder auf den Drucker entscheiden. Falls man Datei gew„hlt hatte, muž man erst im Hauptfenster die "Datei"-Option anw„hlen, um den Datei-Pfad zu bestimmen. Anschliežend kann der Suchvorgang erneut gestartet werden. Der Abbruch des Suchvorgangs ist jederzeit durch Bet„tigung einer Taste oder einer Maustaste m”glich. Nach einer Sicherheitsabfrage wird der Suchvorgang beendet. >>> Info-Box <<< Mit der Box "Info" wird fr alle aktivierten Laufwerke der freie Speicherplatz ermittelt und angezeigt. Aužerdem erscheint ein Hinweis auf den Autor und eine Information ber die vorliegende Version von FINDFILE. Verlassen wird dieses Fenster mit beliebiger Taste oder mit einem Mausklick. >>> Systemzeit einstellen <<< Mit der Tabulator-Taste oder durch Klick in den entsprechenden Button rechts oben kann man die Systemzeit und -Datum einstellen. Zuerst wird das Datum, dann die Systemzeit gestellt. Mit Escape oder rechter Maustaste wird die jeweilige Eingabezeile gel”scht, mit Undo der voreingestellte Wert (das ist die aktuelle GEMDOS-Zeit) wiederhergestellt. Nach der Eingabe von , oder der linken Maustaste wechselt man von der Datums- in die Zeiteingabe. Dabei wird das eingegebene Datum geprft und eventuell korrigiert. Nach der entsprechend funktionierenden Zeiteingabe wird die Eingabefunktion wieder verlassen. Auch hier ist die Plausibilit„tsprfung nicht unbedingt wasserdicht. >>> Verlassen von FINDFILE <<< FINDFILE selbst wird mit Escape, Undo, Klick in den "Ende"-Button oder Klick mit der rechten Maustaste verlassen, wenn man im Hauptfenster ist und sich nicht in einer Eingaberoutine befindet. Der Klick mit der rechten Maustaste funktioniert nur, wenn keine Laufwerke und Optionen aktiviert sind (vgl. unten). >>> Verschiedenes <<< > rechte Maustaste < Generell hat die rechte Maustaste eine L”schfunktion wie die Escape-Taste (bei allen Eingaben). Wenn man im Hauptfenster ist und die rechte Maustaste bet„tigt, so wird getestet, ob irgendwelche Optionen gesetzt sind (Start-Ordner, Archivbit oder Datum). Falls ja werden alle Optionen zurckgesetzt und die Funktion beendet. Sehr praktisch zum raschen Herstellen des Grundzustandes der Optionen-Buttons. War keine Option angew„hlt (erkennbar am invertierten Button) oder wird zum Zweiten mal die rechte Maustaste gedrckt, so wird geprft, ob irgendein Laufwerk selektiert ist. Falls dies der Fall sein sollte, so werden alle Laufwerke deselektiert und die Funktion wird beendet. Analog dazu wird, falls kein Laufwerk aktiviert war oder die rechte Maustaste ein Drittes mal gedrckt wird, das Accessory/Programm verlassen. > Such-Zeit stoppen < Klickt man in die "Suchen"-Box mit der linken Taste, drckt zus„tzlich die rechte Maustaste (ohne die Box zu verlassen), l„žt dann aber zuerst(!) die linke und dann die rechte Maustaste los (alles ohne die Box zu verlassen), so wird man nach dem Suchvorgang mit einer Meldung ber die verbrauchte Suchzeit belohnt. Es wird vor dem Suchvorgang und nach dem Suchvorgang der 200-Hz-System-Timer abgefragt und die Suchzeit daraus berechnet. Solange keine Interrupts gesperrt werden, sollte die Zeit also eigentlich in Ordnung sein. Das Anzeigeformat ist: "Minuten:Sekunden:Hundertstelsekunden". Vorsicht: einige Festplattentreiber (z.B. neuere Versionen des ICDBOOT.SYS) sperren beim Schreiben auf die Platte alle Interrupts! Dadurch kann sich die Messung bei der Ausgabe in eine Datei (nur dann schreibt FINDFILE auf die Platte) leicht verf„lschen. Bei einem TOS <1.4 kann diese Interrupt- gesperrte Zeit aber unter Umst„nden ziemlich lange dauern (einige Sekunden lang). Bei einem derartigen Plattentreiber wrde dann das Mežergrgebnis besser werden, als es in Wirklichkeit ist. > Bild neu aufbauen < Falls es einmal zu einem "versauten" Bildschirm gekommen sein sollte, so kann man mit Clear-Home im Hauptfenster einen Neuaufbau des Hauptfensters erzwingen. Fr historisch interessierte hier eine Auflistung der Features in den „lteren FINDFILE-Versionen: >>> Neuerungen in der Version 1.02: <<< - Fehler bei der Darstellung der Suchmaske beseitigt. - Eingabe des Asterix "*" in der Suchmaske ge„ndert. - Fehlerroutine zur Erkennung von Eingabefehlern beim Ausgabedateinamen verbessert. - Ausgabeformat bei Monitor/Datei ge„ndert: Reihenfolge: Name, L„nge, Pfad, Zeit, Datum, Attribut-Bits (Dadurch nachtr„gliches alphabetisches Sortieren der gefundenen Dateien in einem geeigneten Texteditor [TEMPUS ab V 2.0] m”glich) Trennung der einzelnen Datens„tze mit Kommata, auffllen mit Leerzeichen (Dadurch einfacher Import in Datenbanken mit Ascii- Schnittstelle) - Funktion und Name der Infobox erweitert, zeigt jetzt auch freien Platz auf Disk an. - Bildaufbau optimiert, einige Unsch”nheiten beseitigt. - VDI-Abfrage entfernt, da das OMIKRON.Basic bei Grožmonitoren keinen korrekten Wert fr die Aufl”sung zurckliefert Programm l„uft nicht mit Grožbildschirmen! - Wenn in die Ausgabedatei geschrieben wird, wird unten links im Fenster ein kleines "Wr" eingeblendet, wenn gedruckt wird, erscheint dort ein "Pr". - Wenn die Boxen "Alle ab C:" und "Keines" angew„hlt werden, werden die Laufwerke A und B abgeschaltet, falls sie aktiv sein sollten. >>> Neuerungen in der Version 1.03: <<< - Jetzt auch Anzeige des freien Hauptspeichers im Hauptfenster - Anzeige von Uhrzeit und Datum im Hauptfenster - Weitere kleine Fehlerchen beseitigt, Code-Optimierung - Einbindung der neuen GEM-Library Version 3.0 von Omikron - Anzeige des freien Speicherplatzes auf den Laufwerken bis 2.147.483.647 Bytes (2 Gigabyte oder 2048 Megabyte -1) m”glich. Damit drfte auch der Platz auf CD-ROMS richtig angezeigt werden. - Summe des freien Platzes auf allen Laufwerken ab C: wird ermittelt - Verlassen aller Text-Eingabe-Buttons mit Mausklick m”glich: Mausklick links entspricht , Mausklick rechts - Suchen in einem Ordner m”glich (nur, wenn nur genau ein Laufwerk angew„hlt ist) - Suche nach Dateien, deren Archiv-Bit gesetzt oder gel”scht ist, m”glich - Suche nach Dateien, deren Datum der letzten Žnderung „lter oder jnger als ein bestimmtes Datum sind, oder Suche nach Dateien, welche genau von einem bestimmten Datum sind, m”glich - Anzeige der angew„hlten neuen Optionen durch invertierte Buttons - Durch die neuen Optionen mužte die Tastaturbelegung etwas ge„ndert werden. >>> Neuerungen in der Version 1.04: <<< - Gem-Kompatibilit„t durch Ausgabe aller Grafik-Befehle in ein Gem-Fenster, dadurch etwas ge„nderter Fensteraufbau - Eingabe aller Pfad- und Dateinamen mit der File-Selector-Box m”glich, bei TOS-Versionen ab 1.4 mit Fsel_Exinput (Titelmessage beachten!) - Bildschirmaufbau beschleunigt und Fehlerchen beseitigt - Ausgabegeschwindigkeit auf den Bildschirm gesteigert - Bedienung verbessert - Bessere Routine zur Eingabe des Datums - Einstellung von Systemzeit und -Datum - Programm l„uft als Accessory (.ACC) und als normale Applikation (.PRG), Žnderung einfach durch Umbenennen der Programmdatei. - Nach Ordnereingabe erfolgt nun kein Schreibzugriff auf die Diskette (Platte) zum Testen des Pfadnamens mehr, der Pfadname wird ber GEMDOS getestet (auch bei Erstellung einer Ausgabedatei). - Mit der Taste Clear-Home (kein Button fr diese Funktion vorhanden) kann ein Bildschirm-Neuaufbau erzwungen werden. - Info-Routine komplett neu erstellt. Die Summe des freien Speicher- platzes auf den Laufwerken ab C: wird jetzt richtig berechnet. - Wahlweise Bildschirmrestauration mit fest beim Programmstart allozierten Speicher. Dabei wird, bevor FINDFILE sein Fenster ”ffnet, der betreffende Bildschirmbereich in den Speicherblock kopiert und nachher wieder restauriert. Nachteil: Kostet etwa 20kByte freien Speicher. Das Bildschirmretten kann ber ein Konfigurationsbyte gepatcht werden. >>> Neuerungen in der Version 1.05: <<< - Evtl. eingeschaltete Start-Ordner-Option wird nun auch bei Anwahl von "Alle ab C:" und "Keines" ausgeschaltet - Speicherbedarf um 3 kByte verringert - Ausgabegeschwindigkeit nochmals geringfgig gesteigert - Bei Datei-Ausgabe wird nun die Gesamtanzahl aller gefundenen Dateien (bei mehreren Laufwerken) ermittelt und deren Gesamtgr”že berechnet - Formatierung der Zeilen fr Datei- und Druckerausgabe derart ge„ndert, daž alle Daten nun linksbndig gelesen werden k”nnen (sieht in 1ST_ADRESS hervorragend aus! - Bei der nachtr„glichen Anwahl von "Dateiausgabe", nachdem mehr als 15 Dateien gefunden wurden, muž der Suchvorgang nun nicht mehr neu gestartet werden. - Option zur Bildschirm-Rettung entfernt (scheint nicht mehr erforderlich zu sein...) Viel Spaž nun mit FINDFILE! Marcel Rameil -eof