home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
bbs
/
afsdemo
/
afs.txt
< prev
Wrap
Text File
|
1992-10-31
|
15KB
|
337 lines
|--- The A.F.S. -> Automatic File Sorter -------|
|(c) 1992 Michael Lührig 2:2403/37.4@fidonet.org|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Inhalt:
1. Übliches (Übles?)
2. Warum dieses Programm?
3. Zur Installation und Bedienung
4. Einschränkungen
5. Arbeitsweise des Programmes
6. Internes
7. Warnung!
8. Historie
9. Registrierung
1. Übliches (Übles?):
~~~~~~~~~~~~~~~~~~~~~
Dieses Programm läuft nur auf einem Atari-Rechner.
Der Autor haftet nicht für Schäden jeglicher Art, die durch Verwendung die-
ser Software entsteht. Dieses Programm ist in dieser Version nur zu Testzwecken
freigegeben und darf daher nur von Beta-Testern benutzt werden. Es ist kein PD!
sondern ist als Shareware vorgesehen. Um den Anreiz zu Erhöhen, wurde eine
kleine Abfrage eingebaut, die vor jeder Sortierung auf einen Tastendruck
wartet. Zu den Shareware-Bedingungen siehe ganz unten.
Da dieses Programm noch in der Entwicklungsphase steckt, bin ich natürlich sehr
daran interessiert, auf welchen Rechnertypen (TOS-Versionen) es läuft, ob und
wie Probleme entstanden sind und natürlich Verbesserungsvorschlägen immer
aufgeschlossen. Eine Historie steht immer am Ende dieses Textes. Es ist aber
unbedingt notwendig sich den ganzen Text durchzulesen, damit man mit den
Neuerungen auch etwas Anfangen kann.
TIP -> von den unten beschriebenen Daten sollte man sich erst einmal eine
Sicherheitskopie anfertigen!
2. Warum dieses Programm?
~~~~~~~~~~~~~~~~~~~~~~~~~
Ich fand' es bisher immer lästig, meine Text-Dateien von Hand zu sortieren.
Selbst mit einem Texteditor und einer eingebauten Sortierfunktion o.ä. war es
mir immer zu langwierig, alle meine Ordner nach diesen Dateien zu durchsuchen,
um diese dann einzeln zu sortieren.
Weil ich ein Fan von Übersicht und Ordnung bin, wollte ich mir es auch nicht
nehmen lassen, irgendwie die Inhalte meiner Dateien in einer alphabetischen
Reihenfolge sortieren zu lassen.
Also hab' ich mich herangemacht und hier liegt es nun vor Euch...
3. Zur Installation und Bedienung:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Das Programm AFS.TTP läßt sich von jeder Directory aus starten.
Es benötigt zwei Dinge:
1. einen Atari-Rechner
2. Dateien, die sortiert werden sollen
Es kann also in dem Ordner liegen bleiben, in dem es schon ist.
Mit einem Doppelklick auf das Programm erhält man die Kommandozeile.
Die Syntax für die Eingabe sieht folgendermaßen aus:
"AFS [option] filename {filename}"
(Das AFS entfällt natürlich, wenn man das Programm vom Desktop aus startet)
Unter [option] kann man nur "-d","-v" oder beide "-dv" eingeben.
Ist Option "d" aktiviert, werden zusätzlich zum Verzeichnis alle Unterver-
zeichnisse duchsucht, wenn nicht, wird nur im aktuellen Verzeichnis gesucht.
Ist Option "v" aktiviert, werden alle gefundenen Dateien nur auf dem Bildschirm
angezeigt. Dies ist besonders für die Benutzer wichtig, die sie mit der Eingabe
von Suchmasken noch nicht so gut auskennen. Hier kann man also überprüfen, ob
die angezeigten Dateien auch wirklich denen entsprechen, die man glaubte,
sortieren zu wollen. Ist eine Datei angezeigt, wird man aufgefordert, die
Leertaste (space) zu drücken.
Unter "filename" kann man eine oder mehrere Dateien eingeben und darf auch
Wildcards benutzen.
Beispiele:
Um <alle> Dateien mit der Erweiterung "TXT" sortieren zu lassen, die sich im
<aktuellen> Pfad befinden, gibt man folgende Zeile ein:
"*.txt" (die " dienen nur zur besseren Lesbarkeit und gehören nicht in
eine Kommandozeile).
Wahnsinn was?
Möchte man jetzt zusätzlich dazu auch noch alle Dateien mit der Erweiterung
"LST" sortieren lassen...
"*.txt *.lst"
Vielleicht will man aber in von einem speziellen Verzeichnis aus, alle Unter-
verzeichnisse incl. eine Datei mit der Erweiterung "BBS" sortieren lassen?
Kein Problem...
"-d k:\fileecho\*.bbs"
hier wird im Verzeichnis "fileecho" auf der Partition "K:" nach Dateien vom Typ
"*.BBS" gesucht. Die Suche wird auch in allen Unterverzeichnissen des Ver-
zeichnis' "FILEECHO" durchgeführt. Sind alle Dateien gefunden worden, fängt das
Programm an, diese zu sortieren (günstig für Nodes, oder Points, die mit Stick
& Hatch o.ä. arbeiten, um eine sortierte Fileliste zu erhalten).
usw...
Am unteren Bildschirmrand (auf einem SM124) wird der Benutzername eingeblendet,
auf den dieses Programm registriert ist. Falls es sich um eine nicht
registrierte Version handelt, kommt statt des Namens nur ein Hinweis, daß
dieses Programm "Shareware" ist.
Das Programm läßt sich jederzeit durch Ctrl-C abbrechen. Dann erscheint eine
Meldung, das der Benutzer das Programm abgebrochen hat. Nach eine kleinen
Warteschleife, kommt man zurück zum Desktop.
Der Programm-Abbruch wird allerdings nicht ausgeführt, während eine Datei
geschrieben wird. Auch wird er nicht ausgeführt, nachdem alle Dateien
bearbeitet wurden (falls jemand auf die Idee kommen sollte, um die 10s Schleife
am Ende des Programm's zu verkürzen).
4. Einschränkungen:
~~~~~~~~~~~~~~~~~~~
In meinem Programm sind keine GEM-Routinen eingebunden. Bei evtl. Fehlern, die
über das TOS kommen und in einer Dialogbox beantwortet werden müssen, steht die
Maus evtl. nicht zur Verfügung (muß aber nicht so sein).
Die Zeilenlänge in den einzelnen Text-Dateien sollte den Wert 255 nicht
überschreiten, da sonst mein Programm diese beim Einlesen abschneidet. Der Rest
der überlangen Zeile wird dann wie ein weiterer Eintrag verarbeitet und dann
auch dementsprechend einsortiert.
In der Shareware-Version wird man grundsätzlich vor _jeder_ zu sortierenden
Datei daran erinnert, sich registrieren zu lassen. Außerdem erscheint am Ende
der Sortierung _immer_ der kleine Zeitbalken (10s)!
5. Arbeitsweise des Programms:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Nach einem Doppelklick auf das Programm erhält man die Kommandozeile. Dort kann
man jetzt seine Eingaben tätigen.
Das Gleiche funktioniert auch, wenn man die Datei, die man gerne sortiert haben
möchte einfach auf das Programm zieht. Wird ein Eintrag gefunden, so wird <nur>
dieser Eintrag abgearbeitet.
Das Programm überprüft danach, ob eine Option in der Kommandozeile übergeben
wurde und alls keine Option vorhanden war, wird jetzt überprüft, ob eine
Suchmaske eingegeben wurde. War auch das nicht der Fall, bekommt man einen
Benutzungshinweis.
Jetzt werden alle gefundenen Pfade abgesucht, ob in jenen die zu sortierende/n
Datei/en enthalten ist/sind. Wird/werden diese gefunden, so lädt das Programm
sie nacheinander in das RAM und sortiert sie gleich beim Einlesen. Nach dem
Einlesen wird die so sortierte Datei unter dem gleichen Namen wieder abge-
speichert.
Am Programmstart wird oben rechts auf dem Bildschirm auch die Startzeit, sowie
das aktuelle Datum eingeblendet. Darunter wird immer der aktuelle verfügbare
Speicher angezeigt.
Nach Beendigung der Aktion wird unter der Startzeit für ca. 2 sek die Zeit
eingeblendet, bei der das Programm fertig war. Damit man noch einen ungefähren
Eindruck davon hat, wie "lange" diese 2 Sekunden noch dauern, wird unter der
Abschlußmeldung eine kleine Linie aus "*" eingeblendet, die ständig abnimmt.
Dann wird das Programm verlassen und man landet wieder im Desktop.
6. Internes:
~~~~~~~~~~~~
Dieses Programm arbeitet nun doch wieder mit einer dynamischen Speicherverwal-
tung, deshalb kann ich wieder nicht sagen, wieviel Speicher es verbrauchen
wird, da das von der Größe der zu sortierenden Dateien abhängt. Pro Zeile müßt
Ihr aber mit min. 255 Byte rechnen (Speicherverwaltung muß noch hinzugezogen
werden).
Ein Beispiel:
Ich habe einmal eine Liste von 5605 Personen sortieren lassen. Jede Zeile der
Text-Datei war max. 60 Zeichen lang (dies interessiert aber nicht mein
Programm, da es immer mit einer Zeilenlänge von 255 Zeichen arbeitet). Mit
Verwaltungsdaten kommen wir bei einer Zeile auf 266 Byte. Nach Adam Riese und
Eva Zwerg macht das aber 5605*266 = 1.490.930 Byte! Die Datei wird vorher noch
in das Ram geladen und verbraucht somit auch noch einmal kurzzeitig ca. 340 KB.
Also macht das insgesamt ca. 1.83 MB!
Es ist also nur eine Frage des Speicherausbaus, um größere Dateien sortieren zu
lassen. Für den ganzen Vorgang wurde übrigens auf einem 1040 STe mit TOS 2.06
und 4MB eine Zeit von 1'15" gebraucht (8 MHz).
Möchte aber jemand so ein Monstrum von Datei danach gleich noch einmal
sortieren lassen, so warne ich jetzt schon davor, das es zu einer Kaffeepause
ausarten kann. Die Sortierung funktioniert immer am besten, wenn sich die
Datei-Inhalte von einer alphabetischen Ordnung unterscheiden. Was bei kleineren
Dateien nicht so stark auffällt, bringt bei obigem Beispiel dann eine Wartezeit
von bis zu 15 Min mit sich (liegt am Sortierverfahren)!
Nun wünsche ich Euch da draußen vor der Bildröhre noch ein angenehmes Sortieren
Eurer Fileecho's.
7. Warnung!
~~~~~~~~~~~
! ACHTUNG ! ! ACHTUNG ! ! ACHTUNG ! ! ACHTUNG ! ! ACHTUNG ! ! ACHTUNG !
Mein Programm nimmt keine Rücksicht, welche Dateien sortiert werden. Es
arbeitet alle Dateien, die in der Suchmaske angegeben wurden, ab!
Sollte jemand von Euch auf die Idee kommen und "-d c:\*.*" eingeben, der ist
SELBST SCHULD! Danach habt Ihr auf C: <ALLE> Dateien sortiert. Auch die
PROGRAMME etc. Deshalb VORSICHT. Am Besten auf einer Diskette üben, falls man
sich nicht sicher ist, oder die "V"-Option benutzen!
! ACHTUNG ! ! ACHTUNG ! ! ACHTUNG ! ! ACHTUNG ! ! ACHTUNG ! ! ACHTUNG !
8. Historie:
~~~~~~~~~~~~
Version 0.1 - 0.6:
------------------
Aufbau der einzelnen Programmteile, die für die Verwaltung, den Speicherbedarf,
das Einlesen und andere Sachen zuständig sind.
Version 0.6 - 0.8:
------------------
Implementation einer besseren Speicherverwaltung. Da die alte Version den
angemeldeten Speicher nach dem Schreiben der sortierten Daten nicht wieder
freigegeben hat, konnte es u.U. sehr schnell zu einem vollen Speicher kommen.
Dies ist jetzt beseititgt (wie man es auch an der "Memory"-Anzeige verfolgen
kann).
Überall, wo in dem Programm Fehler bei zugriffen auf Daten, ob nun Intern
(RAM), oder Extern (Dateien), auftreten können wurde eine Abfangroutine
installiert. Sollte also ein Problem auftauchen, so wird eine Meldung auf den
Bildschirm geschrieben und das Programm danach verlassen. Es kann allerdings
auch vorkommen, das bei Wechselplattenbesitzern, eine Meldung der Treibersoft-
ware über das GEM kommt. In diesem Fall sollte man also entweder vorher die
angemeldeten Partitionen aus dem System entfernen, oder sein Medium, einlegen
und die Platte wieder hochfahren.
Version 0.81 beta
-----------------
Beseitigung des "Return-Fehlers" in den Textdateien, die zum frühzeitigen
Abbruch der Sortierroutine führten.
-> Vielen Dank an Karsten Ebeling für diesen Tip.
Die Wartezeit am Ende des Programms wurde auf 3 sek. verkürzt.
Version 0.9 beta
----------------
Dynamische Speicherverwaltung entfernt, da der Aufwand an benötigtem Speicher
unverhältnismäßig hoch zu der Größe der Datei war. Siehe oben.
Das Sortieren während des Einlesens der Datei (binärer Baum) wurde völlig
entfernt und eine Quick-Sort, sowie eine Bubble-Sort-Routine implementiert.
Es wurde eine Abfrage eingabaut, die überprüft, ob die Text-Datei nur eine
Zeile enthält. Sortieren lohnt sich ja auch erst ab zwei Zeilen...
Alles in allem ist das Programm dadurch 25% schneller geworden!
Version 1.0 beta
----------------
...das Programm lief dann aber nicht mehr auf einem Atari-TT...
Das sollte also wieder behoben sein.
Die dynamische Speicherverwaltung ist also wieder eingebaut worden, damit ich
nicht 2 Programmversionen pflegen muß.
Die Speicherverwaltung ist überarbeitet worden und verbraucht nur noch soviel
Speicher, wie nötig. Beim Zurückschreiben der Daten wird gleichzeitig der nicht
mehr benötigte Speicher freigegeben (erkennbar an der Speicheranzeige).
Es kann ab jetzt sofort eine beliebige Datei auf das Programm[icon] gezogen
werden, wodurch sich der "Single-Sort-Mode" einschaltet. Die Datei wird sofort
sortiert, zurückgeschrieben und das Programm danach ohne Warteschleife verlas-
sen (zieht bitte nicht aus Versehen das Programm drauf...). Die Möglichkeiten
bei einer Bearbeitung mit einer Batch-Datei möchte ich nur mal erwähnen.
In der Batch-Datei wäre dann folgendes denkbar:
afs.ttp h:\nodelist\fidouser.lst
...nach diesem Aufruf würde AFS _nur_ die Datei "fidouser.lst" sortieren und
danach sofort! wieder verschwinden. Wird die Datei nicht gefunden geht's mit
einer Fehlermeldung wieder zurück.
Version 1.1beta
---------------
Nun ist es endgültig vollbracht.
Das Programm wird nur noch über die Kommandozeile gesteuert.
Eine Datei auf das Icon zu ziehen funktioniert aber trotzdem noch.
Die Shareware-Abfrage wurde eingebaut und Ctrl-C funktioniert jetzt auch.
9. Registrierung
~~~~~~~~~~~~~~~~
Wer sich registreren lassen möchte, der schicke mir bitte entweder einen Brief
an meine Adresse, oder per EMail an meine Netz-Adresse.
Michael Lührig Sparkasse Berlin
Antonienstr. 4 BLZ: 100 500 00
1000 Berlin 51 KTO: 640 180 531
Vermerk: AFS Registrierung, Name & Adresse
Die Höhe der einmaligen Registrierung beläuft sich auf 20.-DM.
Mit der Registrierung erhält man dann ein ruhiges Gewissen und natürlich die
Vollversion, die einmal den Benutzernamen beinhaltet und zum anderen nicht mehr
mit der Tastaturabfrage nervt. Wenn das Geld auf meinem Konto überwiesen wurde,
schicke ich entweder eine Diskette an den Absender, oder über das Modem (nach
Vereibarung). Falls möglich, sollte mir der Registrierfreudige eine Bestätigung
über das Fido senden, damit ich weiß, das es auch der rechtmäßige Besitzer ist,
der mir das Geld geschickt hat.
-----------------------------------------------------------------------------
I Michael Lührig Antonienstr. 4 I
I UseNet/InterNet: luehrig@krypta.in-berlin.de W-1000 Berlin 51,FRG I
I FidoNet : 2:2403/37.4@Fidonet I
-----------------------------------------------------------------------------
Michael Lührig, am 31.10.1992 um 17:40 Uhr
Ende der Kommunikation... "click"