APPLICATIONSDIVERS ★ UNIDATA|CPC AMSTRAD INTERNATIONAL) ★

Unidata (CPC Amstrad International)Applications Divers
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Alles ist relativ...
...mit UNIDATA-Datei-Befehlen

Neben der sequentiellen Datei, die fast jeder CPC-Besitzer schon einmal programmiert hat, gibt es noch einen zweiten Typ von Dateiverwaltung, die relative Datei. Sie hat gegenüber dem ersten Dateityp so manchen Vorteil, an erster Stelle sei hier die Bearbeitungszeit genannt. Die relative Datei schreckt jedoch so manchen 'Datensammler' von der Programmierung ab, weil die Handhabung nicht allzu einfach ist. Aber dagegen haben wir etwas für Sie. UNIDATA - RSX-Befehle zur Programmierung relativer Dateien.

Allgemeine Hinweise:

UNIDATA besteht aus zwei Programmteilen:

  1. Dem DATA-LADER, ihn tippen Sie bitte als erstes ab. Lassen Sie sich dabei Zeit, er ist mit knapp 23K nicht gerade kurz, und Fehler können beim schnellen Abtippen eher passieren. Sind Sie fertig (so oder so), speichern Sie ihn bitte erst einmal als UNIDATA.LAD auf Ihrem Datenträger ab, bevor Sie ihn mit RUN starten. Danach wird nämlich, wenn Sie fehlerfreie Arbeit geleistet haben, das File UNIDATA. BIN automatisch auf dem Datenträger abgelegt. Hierzu sei noch eine Anmerkung für ' Nur'-Kassettenbesitzer gemacht: Eine relative Dateiverwaltung ist nur mit einem Floppy-Laufwerk sinnvoll, da hier die Datenstruktur völlig anders als bei einer sequentiellen Datei aufgebaut ist und das Arbeiten mit Kassette unmöglich macht.
  2. Das Demoprogramm. Dieses tippen Sie nach der Erzeugung von UNIDATA.BIN ab und speichern es. Danach starten Sie das Programm mit 'RUN', es zeigt Ihnen den Gebrauch der neue RSX-Befehle. Das Programm wurde auf dem CPC 6128 erstellt, es wurde aber so konzipiert, daß es auch auf dem CPC 664 und CPC 464 läuft.

Die Befehle

Zuerst ein wichtiger Hinweis: Nur in DATA-ONLY-Format formatierte Disketten benutzen.

1. |SATZLAENGE, < laenge > Legt die Länge des Datensatzes fest. Die maximale Datensatzlänge ist 512 Bytes. Die Datensatzlänge muß auf eine Zweierpotenz aufgerundet werden. Sie haben die Wahl unter folgenden Satzlängen: 2, 4, 8, 16, 32, 64, 128, 256, 512. Wichtig: Bevor die relative Datei durch 'CLOSEIN' geschlossen wird, müssen  Sie das Kommando '|SATZLAENGE,0' geben.

Berechnungsbeispiel:

Feld$(1) - Name - Länge 20 Byte
Feld$(2) - Vorname - Länge 18 Byte
Feld$(3) - Telefon - Länge 16 Byte
Datensatzlänge: 54Byte + 1 Trennzeichen pro Feld: 3 Byte
Anzugebene Satzlänge: 64 Byte

2. |DATENSATZ.NR, < nr > Bestimmt den Datensatz, der entweder gelesen oder geschrieben wird. Der erste Datensatz hat immer die Nummer 0. Stellen Sie sicher, daß Sie keine größere Satznummer angeben, als die Anzahl der Datensätze Ihrer Datei beträgt.

3. |SCHREIBE, < Parameterliste > Schreibt einen Datensatz in die relative Datei. Die Parameter müssen entweder so (Beispiel 3 Datenfelder):

|SCHREIBE, @feld$( 1), @feld$(2), @feld$(3)

oder so:

440 FOR i = 1 TO 3
450 a$=feld$(i)
460 |SCHREIBE,@a$
470 NEXT i

eingegeben werden.

Wichtig: Es können maximal 32 Parameter (Datenfelder) angegeben werden. Numerische Variablen müssen einer Stringvariablen zugeordnet werden.

4. |LESE, < Parameterliste > Liest einen Datensatz aus der relativen Datei. Parameterliste analog
|SCHREIBE.

Anlegen einer relativen Datei

Bevor mit den vorgenannten Befehlen gearbeitet werden kann,muß eine Datei folgendermaßen angelegt werden (Bsp.: Datensatzlänge - 64, Anzahl Datensätze - 100):

10 OPENOUT "Datei.rel"
20 FOR i = 0 TO 99
30 PRINT#9,STRING$(64,32);
40 NEXT i
50 CLOSEOUT

Befehle zur komfortablen Menübedienung

1. |MENUE.AN, < @balken$ > Gibt in der obersten Zeile des Monitors den durch die Variable 'balken$' definierten Menübalken aus. Der Menüstring 'balken$' enthält die einzelnen Menüpunkte (max.9), getrennt beginnend und endend mit'/'. Zum Abschluß ist noch CHR$(0) anzugeben. Beispiel:balken$ = “/Datei/Formatieren /ICONS/Ende/“ +CHR$(0)

2. |MENUE.AUS Löscht die beiden oberen Zeilen des Monitors. Dieser Befehl muß immer vor dem Befehl |MENUE.AN aufgerufen werden.

3. |MENUE.NR, < @nr% > Nach Aufruf dieses Befehls können Sie mit den Cursortasten im, durch den Befehl '|MENUE.AN', angezeigten Menübalken einen Menüpunkt aus wählen. Der ausgewählte Menüpunkt wird invertiert dargestellt. Nach Bestätigung Ihrer Auswahl mit der ' RETURN'-Ta-ste enthält die Variable 'nr % ' die Nummer des gewählten Menüpunktes.

4. |PDOWN, < @menue$ > Gibt unmittelbar unter dem durch 'öMENUE.NR' ausgewählten Menüpunkt ein DROP-DOWN-MENUE aus. Der Menüstring 'menue$' muß folgendermaßen aufgebaut sein:

menue$=/UNTERMENUE1 /UNTER-MENUE2/UNTERMENUE3/ (maximal 10)mit '/' beginnend, getrennt und abschließend, beendet wird der String wieder mit CHR$(0). Die einzelnen Menüpunkte dürfen die maximale Länge von 15 Zeichen nicht überschreiten. Die Auswahl geschieht wie bei '|MENUE.NR' . Nach der Auswahl wird das Menüfenster geschlossen und der alte Bildschirminhalt wiederhergestellt.

5. |PDOWN, < links,rechts, oben, unten,@menue$ > Wie bei 4. Es gelten keine Einschränkungen bei der Anzahl und Länge der Menüpunkte. Die Parameterangaben 'links, rechts, oben, unten' entsprechen in etwa denen des WINDOW-Befehls. Links/ rechts darf die Werte 2-79, oben/ unten die Werte 2-24 annehmen. Insgesamt darf das Pulldown-Menü nicht größer als 210 Printpositionen sein (Printpositionen = Spalten* Zeilen). Bei Nichtbeachtung erscheint die Meldung 'Fenster zu gross ! ' Diese Einschränkung muß gemacht werden, um den schon ohnehin knappen Speicher des Computers besser nutzen zu können.

6. |DROP.NR, < nr% > Dieser Befehl sollte nach der Auswahl im DROP-DOWN-MENUE aufgerufen werden. Die Variable nr% enthält die Nummer des ausgewählten Menüpunktes.

Befehl zum Formatieren der Disketten

1. |FORMAT

Nach Aufruf dieses Befehls erscheint im unteren Drittel des Monitors eine sogenannte Dialogbox. In ihr können Sie das gewünschte Format (System oder Data-Only) mit den Cursortasten/Return auswählen. Nach Beendigung des Formatiervorgangs haben Sie die Möglichkeit, weitere Disketten zu formatieren oder zum BASIC-Programm durch Anwahl des Menüpunktes 'ABBRUCH' zurückzukehren. Formatiert wird immer im internen Laufwerk. Eine Überprüfung, ob sich eine Diskette im Laufwerk befindet, wird allerdings nicht vorgenommen.

Befehl zum Abfangen von Diskettenfehlern

|DISKFEHLER, < @fehler% >

1. Durch Aufruf dieses Befehls werden Diskettenfehler wie 'Datei nicht vorhanden' und 'Diskette fehlt' in der Dialogbox angezeigt. Sie haben die Möglichkeit, den Fehler zu beseitigen, indem Sie -OK- bestätigen, oder das Programm abzubrechen mit -ABBRUCH-.

Beachten Sie hierzu auch den Abschnitt 'Sonstige Befehle.'

Druckerbefehle

1. |DRUCKERSTATUS Prüft, ob der Drucker betriebsbereit ist. Sollte der Drucker nicht ein- oder OFFLINE- geschaltet sein, wird in der Dialogbox die Meldung 'DRUCKER EINSCHALTEN' ausgegeben. Sie haben die Möglichkeit, den Drucker betriebsbereit zu schalten, -OK- zu bestätigen, oder aber durch Anwahl von -ABBRUCH- zum BASIC-Programm zurückzukehren.

2. |TEXTKOPIE, < links, rechts, oben, unten > Durch die Angabe der linken/ rechten Spalte und der oberen/ unteren Zeile können Sie einen Ausschnitt des Bildschirms als Textkopie auf Ihren Drucker ausgeben. Die Parameterangaben entsprechen denen des WINDOW- Befehls. Werden keine Parameter angegeben, wird eine Textkopie des gesamten Bildschirms erstellt. Das Programm überprüft, ob der Drucker betriebsbereit ist. Wichtig: Zeichen die |TEXTKOPIE nicht lesen kann (z.B. invers dargestellte Zeichen), werden durch Leerzeichen ersetzt.

Sonstige Befehle

1. |MELDUNG, < @text$ > In der Dialogbox wird der durch die Variable 'text$' festgelegte Text ausgegeben.

Beispiel:

text$=" RichtigeDisketteeingelegt? " + CHR$(0)

Wichtig ist, daß die Meldung durch CHR$(0) abgeschlossen wird und nicht zu lang ist. Auch hier muß die Meldung durch Anwahl von 'OK/ ABBRUCH' bestätigt werden. Siehe auch Befehl '|ABBRUCH'.

2. |TASTE, < zeichen% > In der Dialogbox wird die Meldung 'Bitte Taste..druecken!“ ausgegeben und das Programm solange angehalten, bis eine bestimmte oder auch beliebige Taste gedrückt wird. Als Parameter müssen Sie den ASCII-Code der gewünschten Taste angeben. Soll auf eine beliebige Taste gewartet werden, geben Sie keinen Parameter an.

3. |ABBRUCH, < @nr% > Gibt an die Variable 'nr%' eine 1 für 'OK' oder eine 2 für 'ABBRUCH' zurück. Der Befehl arbeitet nur sinnvoll, wenn in der Dialogbox eine Meldung ausgegeben wurde. WICHTIG: Die Steuerung (z.B. Abbruch des BASIC-Programms oder Anzeige des Hauptmenüs) muß durch Ihr BASIC- Programm erfolgen.

4. |ICON,<nr,spalte,zeile > Gibt ein durch Nr.(0-11) festgelegtes Symbol in Spalte/Zeile aus.

5. |INTT Setzt den Bildschirm in Mode 2 und löscht alle definierten Windows.

6. |COPY, < @text% > Kopiert ein Zeichen von der durch 'Locate,spalte,zeile' festgelegten Position und gibt den ASCII-Code an die Variable 'text%' zurück.

Damit wären alle Befehle erklärt, und uns bleibt nur noch, Ihnen viel Erfolg mit Ihrer relativen Datei zu wünschen.

Ralf Heinrich/jb/cd , CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1988
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC Amstrad International 1988
★ AUTHOR: Ralf Heinrich

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Unidata    (CPC  Amstrad  International)    GERMANDATE: 2021-08-10
DL: 11 fois
TYPE: ZIP
SIZE: 8Ko
NOTE: 40 Cyls
.HFE: NON

Je participe au site:
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » RSX Screenswap (Schneider Aktiv)
» Applications » Bunyip Software - Screen Graphics Packaged (The Amstrad User)
» Applications » Logo Screen Dump
» Applications » Screen Flip
» Applications » 16-Shade Screendump
» Applications » ScreenScroll (CPC Amstrad International)

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 247 millisecondes et consultée 48 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.