Wie von selbst: Auto-Ramdisk-Copy in Omikron-Basic

Bei einer Speichergröße von einem Megabyte, wie sie der Atari ST bietet, gehört eine Ramdisk bei den meisten ST-Usern zum Desktop wie der Papierkorb. Da nicht jede Ramdisk ein Auto-Copy-Programm zur Verfügung stellt, das automatisch vom User ausgesuchte Files in die Ramdisk kopiert, mußte auch ich diese Files erst markieren und dann in die Ramdisk schieben, um sie so zu kopieren: Eine mühselige, fehlerträchtige und zeitraubende Arbeitsweise angesichts der Leistungsfähigkeit des Atari ST. Dabei muß ein solches Auto-Copy-Programm eigentlich gar nicht viel können: Es soll die File-Namen der zu kopierenden Dateien von Diskette lesen, um diese anschließend von Disk A auf Disk C (oder D etc.) zu kopieren. Um dieses Programm universell einsetzen zu können, soll sowohl der Buchstabe des Quell-als auch der des Ziel-Laufwerkes eingelesen werden.

Zuerst also zu den File-Namen, die in der sequentiellen Datei namens „AUTO_RDC.BAT“ auf Disk gespeichert werden sollen: (Siehe Abb. 1)

Dieses Progrämmchen habe ich der Einfachheit halber an Auto-Ramdisk-Copy angehängt. Sie tragen also statt meiner File-Namen die von Ihnen gewünschten ein, ändern bei Bedarf den Ramdisk-Buchstaben und starten den Batch-Maker mit RUN BATCH_MAKER. Übrigens können Sie diese Datei jederzeit ändern, indem Sie den Batch-Maker mit den neuen File-Namen versehen und dann starten.

Auf eine Erklärung des Listings kann wegen des reichlichen Gebrauchs von dokumentierenden Rems sicher verzichtet werden. Gestartet wird AUTO_RDC.BAS entweder, was am bequemsten ist, mit Doppelklick direkt vom Desktop (nachdem die Ramdisk eingerichtet wurde), oder mit RUN „AUTO_RDC.BAS“ unter Omikron-Basic.

Wenn alle Batch-Files fehlerfrei auf das Ziel-Laufwerk kopiert wurden, löscht sich Auto-Ramdisk-Copy selbst, da ein nochmaliger Start auf jeden Fall einen Fehler verursachen würde.

Sollte Ihre Ramdisk im Icon einen anderen Buchstaben als C aufweisen, so müssen Sie im BATCH_MAKER den Buchstaben eintragen, den Ihre Ramdisk im Icon hat.

Es sei noch erwähnt, daß Auto-Ramdisk-Copy durch die Tatsache, daß sowohl das Quell- als auch das Ziel-Laufwerk aus dem Batch-Job eingelesen werden, auch als gewöhnliches Kopierprogramm benutzt werden kann (z. B. Quell-Laufwerk: A, Ziel-Laufwerk: B und der Batch-Job natürlich auf dem Quell-Laufwerk).

Der Zeitaufwand, den das Abtippen der 78 Zeilen erfordert, lohnt sich sehr schnell, da durch Auto-Ramdisk-Copy das leidige Selektieren und Hin- und Hergeschiebe entfällt.

A1so ab heute schneller, sicherer und bequemer arbeiten mit Auto-Ramdisk-Copy!

PANCREATION

0 '***************************************
1 '
2 ' AUTO-RAMDISK-COPY
3 '
4 '**************************************
5 '
6 '	Ein	ebenso kleines
7 ' wie	nützliches Hilfsprogramm
8 ' für	alle
9 ' Omikron-Basic-Programmierer
10 '
11 ' PANCREATION 1987
12 '
13 ' Rainer Pankratz
14 ' Im Veidenkamp 18
15 ' 3340 Wolfenbüttel
16 '
17 ' *****************************************
18 '
19 CLS ' Bildschirm löschen
20 OK ERROR GOTO Fehler ' Fehler abfangen
21 DIM Batch$(64) ' Platz für Batch-Liste
22 PRINT CHR$(27);"f" ' Cursor ausschalten
23 PRINT : PRINT
24 PRINT TAB (12);"**********************************************"
25 PRINT TAB (12);"*                                            *"
26 PRINT TAB (12);"*      A U T O - R A M D I S K - C O P Y     *"
27 PRINT TAB (12):"*                                            *"
28 PRINT TAB (12);"*	PANCREATION '87                         *"
29 PRINT TAB (12);"*                                            *"
30 PRINT TAB (12);"**********************************************"
31 PRINT
32 '  
33 OPEN "I",1,"AUTO_RDC.BAT" ' Batch-Datei öffnen
34 Count=0 ' Zähler auf Kuli setzen
35 INPUT #1,Quell$ ' Quell-Laufwerk lesen
36 INPUT #1,Ziel$ ' Ziel-Laufwerk lesen
37 WHILE NOT EOF(1) ' Solange noch Daten vorliegen ...
38 		Count=Count+1 'Zähler erhöhen
39 		INPUT #1,Batch$(Count) ' File-Name speichern
40 WEND ' bis keiner mehr vorhanden
41 CLOSE 1 ' Batch-Datei schließen
42 IF Count=0 THEN ERROR 1 ' bei Null Fehler erzeugen
43 REPEAT '	Kopierschleife
44 		Loop_Nr=Loop_Nr+1 '	Zähler erhöhen
45 		PRINT TAB (23);Batch$(Loop_Nr);" "; ' File-Namen anzeigen
46 		PRINT TAB (41);">>>>"; ' Vorgang anzeigen
47 		COPY Quell$+":\"+Batch$(Loop_Nr) TO Ziel$+":\" ' Kopieren
48 		PRINT TAB (41);"    "; ' Anzeige löschen
49 		PRINT TAB (48);"	[ OK ]": PRINT ' hat geklappt
50 UNTIL Loop_Nr=Count ' bis alle kopiert sind
51 CLS '	Bildschirm löschen
52 PRINT ">>> ";Ziel$;":": PRINT ' Ramdiskinhalt
53 FILES Ziel$+":\*.*" ' anzeigen
54 NEW ' AUTO-RAMDISK-COPY löschen
55 ' Fertig!
56-Fehler ' Fehlerbehandlung
57 MOUSEON '	Maus ein und A1ert zeigen
58 FORM_ALERT (1,"[1][Es ist ein Fehler aufgetreten!|Bitte Diskinhalt
prüfen|und nochmal versuchen!][ OK ]",Button)	
59 MOUSEOFF ' Maus aus
60 CLS '	Bildschirm löschen
61 PRINT ">>>	"+Quell$;":": PRINT ' Quelldisk Inhalt zeigen
62 FILES Quell$+":\*.*" ' weil wahrscheinlich Datei
63 RESUME Ende ' nicht vorhanden
64-Ende
65 END '	Fertig!
66 '
67 '*** BATCH-HAKER *** '	Batch-Datei erstellen
68-Batch_Maker
69 OPEN "O",1,"AUTO_RDC.BAT" ' Datei öffnen
70 '
71 PRINT #1,"A" ' Quell-Laufwerk schreiben
72 PRINT #1,"C" ' Ziel-Laufwerk schreiben
73 PRINT #1,"FILE_NR1.XYZ" ' die zu
74 PRINT #1,"FILE_NR2.XYZ" ' kopierenden File-Namen
75 PRINT #1,"FILE_NR3.XYZ" ' schreiben
76 ' Liste ist erweiterungsfähig!
77 CLOSE 1 ' Datei schließen
78 * Fertig!


Aus: ST-Computer 11 / 1987, Seite 94

Links

Copyright-Bestimmungen: siehe Über diese Seite