Letztes Update am Sa., 31 Mai 2025 15:34:24 +0200 von Andreas Potthoff
OPEN
- Token: 159 / $9F | Abkürzung: oP | ROM Exec: 57790 / $E1BE
- Typ: Anweisung | Funktion: Input/Output
- Syntax: OPEN <file-num>,[<device>][,address>][,”File-name> [,<type>][,<mode>]”]
Aktion, Hinweise, Tipps, Tricks:
Diese Anweisung öffnet einen Kanal für die Ein- und/oder Ausgabe an ein Peripheriegerät. Möglicherweise benötigen Sie jedoch nicht alle diese Teile für jede OPEN-Anweisung. Manche OPEN-Anweisungen benötigen nur zwei Codes:
1) LOGISCHE DATEINUMMER
2) GERÄTEANUMMER
Die <file-num> ist die logische Dateinummer, die die Anweisungen OPEN, CLOSE, CMD, GET#, INPUT# und PRINT# miteinander verknüpft und sie dem Dateinamen und dem verwendeten Gerät zuordnet. Die logische Dateinummer kann zwischen 1 und 255 liegen, und Sie können ihr eine beliebige Zahl innerhalb dieses Bereichs zuweisen. Dateinummern über 128 sind eigentlich für andere Zwecke vorgesehen. Es empfiehlt sich daher, nur Zahlen unter 127 für Dateinummern zu verwenden.
Jedes Peripheriegerät (Drucker, Diskettenlaufwerk, Kassette) im System hat eine eigene Nummer, auf die es antwortet. Die -Nummer wird bei OPEN verwendet, um anzugeben, auf welchem Gerät die Datendatei gespeichert ist. Peripheriegeräte wie Kassettendecks, Diskettenlaufwerke oder Drucker antworten außerdem auf mehrere sekundäre Adressen. Stellen Sie sich diese als Codes vor, die jedem Gerät mitteilen, welche Operation
ausgeführt werden soll. Die logische Dateinummer des Geräts wird bei jeder GET#-, INPUT#- und PRINT#-Anweisung verwendet.
Wenn die <device>-Nummer weggelassen wird, geht der Computer automatisch davon aus, dass Ihre Informationen an die Datassette gesendet und von ihr empfangen werden sollen, also an die Gerätenummer 1. Der Dateiname kann ebenfalls weggelassen werden, später im Programm können Sie die Datei jedoch NICHT mehr mit diesem Namen aufrufen, sofern Sie ihr nicht bereits einen zugewiesen haben. Wenn Sie Dateien auf Kassette speichern, geht der Computer davon aus, dass die sekundäre <address> Null (0) ist, wenn Sie die sekundäre Adresse weglassen (Lesevorgang).
Ein sekundärer Adresswert von eins (1) öffnet Kassettendateien zum Schreiben. Ein sekundärer Adresswert von zwei (2) bewirkt, dass beim Schließen der Datei eine Bandende-Markierung geschrieben wird. Die Bandende-Markierung verhindert ein versehentliches Lesen über das Datenende hinaus, was zur BASIC-Fehlermeldung „?DEVICE NOT PRESENT“ führen würde.
Für Diskettendateien stehen die sekundären Adressen 2 bis 14 für Datendateien zur Verfügung. Andere Nummern haben jedoch in DOS-Befehlen besondere Bedeutung. Sie müssen eine sekundäre Adresse verwenden, wenn Sie Ihr(e) Diskettenlaufwerk(e) verwenden.
Der <file-name> ist eine Zeichenfolge von 1 bis 16 Zeichen und optional für Kassetten- oder Druckerdateien. Wenn der <type> Dateityp weggelassen wird, wird automatisch der Programmdateityp verwendet, sofern der <mode> Modus nicht angegeben ist. Sequentielle Dateien werden zum Lesen geöffnet <mode>=R, es sei denn, Sie geben an, dass Dateien zum Schreiben geöffnet werden sollen <mode>=W. Ein Dateityp kann zum Öffnen einer vorhandenen relativen Datei verwendet werden. Verwenden Sie REL für <type> bei relativen Dateien. Relative und sequentielle Dateien sind nur für die Festplatte bestimmt. Wenn Sie versuchen, auf eine Datei zuzugreifen, bevor sie geöffnet wurde, wird die BASIC-Fehlermeldung „?FILE NOT OPEN“ angezeigt. Wenn Sie versuchen, eine Datei zum Lesen zu öffnen, die nicht existiert, wird die BASIC-Fehlermeldung „?FILE NOT FOUND“ angezeigt. Wenn eine Datei zum Schreiben auf der Festplatte geöffnet wird und der Dateiname bereits existiert, wird die DOS-Fehlermeldung „FILE EXISTS“ angezeigt. Für Banddateien ist diese Überprüfung nicht verfügbar. Stellen Sie daher sicher, dass das Band richtig positioniert ist, da Sie sonst versehentlich zuvor gespeicherte Daten überschreiben könnten. Wenn eine bereits geöffnete Datei geöffnet wird, tritt die grundlegende Fehlermeldung „FILE OPEN“ auf.
Beispiele:
10 OPEN 2,8,4,"DISK-OUTPUT,SEQ,W" (Öffnet eine sequentielle Datei auf der Diskette) 10 OPEN 1,1,2,"TAPE-WRITE" (Schreibt das Dateiende beim Schließen) 10 OPEN 50,0 (Tastatureingabe) 10 OPEN 12,3 (Bildschirmausgabe) 10 OPEN 130,4 (Druckerausgabe) 10 OPEN 1,1,0,"NAME" (Lesen von Kassette) 10 OPEN 1,1,1,"NAME" (Schreiben auf Kassette) 10 OPEN 1,2,0,CHR$(10) (Öffnen des Kanals zum RS-232-Gerät) 10 OPEN 1,4,0,"STRING" (Sendet Großbuchstaben/Grafiken an den Drucker) 10 OPEN 1,4,7,"STRING" (Groß-/Kleinschreibung an Drucker senden) 10 OPEN 1,5,7,"STRING" (Groß-/Kleinschreibung an Drucker mit Gerät Nr. 5 senden) 10 OPEN 1,8,15,"COMMAND" (Befehl an Diskette senden)
Befehle | CLOSE, CLR, CMD, CONT, DATA, DEF, DIM, END, FOR, GET, GET#, GOSUB, GOTO, IF, INPUT, INPUT#, LET, LIST, LOAD, NEW, NEXT, ON, OPEN, POKE, PRINT, PRINT#, READ, REM, RESTORE, RETURN, RUN, SAVE, STOP, SYS, VERIFY, WAIT |
Befehle Spezial (Bywords) | FN, GO, NOT, SPC(, TAB(, THEN, TO, STEP |
Arithmetische und logische Operatoren | +, –, *, /, ^, >, =, <, AND, OR |
Funktionen | ABS, ASC, ATN, CHR$, COS, EXP, FRE, INT, LEFT$, LEN, LOG, MID$, PEEK, POS, RIGHT$, RND, SGN, SIN, SQR, STR$, TAN, USR, VAL |
Konstanten und Systemvariablen | Pi, ST, TI, TI$ |