OPEN |
Ouvre |
---|---|
QuickBASIC/QBasic |
Syntaxe
OPEN fich$ [FOR mode] [ACCESS acc] [verr] AS [#]numFich% [LEN=lgEnr%] |
OPEN "COMn: port:[vitesse][,parité][,donnée][,arrêt][,RS][,CS[n]][,DS[n]][,CD[n]][,LF][,PE]" [FOR mode] AS [#]numFich% [LEN=lgEnr%] |
Paramètres
Nom | Description | ||
---|---|---|---|
fich$ | Ce paramètre permet d'indiquer le nom du fichier | ||
mode | Ce paramètre permet d'indiquer le mode d'ouverture du fichier : | ||
Constante | Description | ||
INPUT | Cette constante indique un mode d'accès en entrée | ||
OUTPUT | Cette constante indique un mode d'accès en sortie | ||
APPEND | Cette constante indique une sortie séquentielle ajouté à la fin d'un fichier | ||
acc | Ce paramètre permet d'indiquer le type d'accès au fichier : | ||
Constante | Description | ||
"R" | Cette constante indique un mode d'accès sélectif | ||
"O" | Cette constante indique un mode de sortie en accès séquentiel | ||
"I" | Cette constante indique un mode d'entrée en accès séquentiel | ||
verr | Ce paramètre permet d'indiquer le type de verrouillage : | ||
Constante | Description | ||
SHARED | Cette constante permet d'indiquer un mode partagé | ||
LOCK READ | Cette constante permet d'indiquer un verrouillage en mode lecture | ||
LOCK WRITE | Cette constante permet d'indiquer un verrouillage en mode écriture | ||
LOCK READ WRITE | Cette constante permet d'indiquer un verrouillage en mode lecture ou écriture | ||
numFich | Ce paramètre permet d'indiquer le Handle utilisé par les autres fonctions et procédures pour accéder à se fichier. Les valeurs doivent être comprise entre 1 et 511. | ||
lgEnr% | Ce paramètre permet d'indiquer la longueur des enregistrements | ||
port | Ce paramètre permet d'indiquer le numéro du port série, soit 1 ou 2. | ||
vitesse | Ce paramètre permet d'indiquer la vitesse de transmission en baud : | ||
Valeur | Description | ||
75 | Cette constante indique que la transmission des données s'effectue à une vitesse de 75 bauds | ||
110 | Cette constante indique que la transmission des données s'effectue à une vitesse de 110 bauds | ||
150 | Cette constante indique que la transmission des données s'effectue à une vitesse de 150 bauds | ||
300 | Cette constante indique que la transmission des données s'effectue à une vitesse de 300 bauds | ||
600 | Cette constante indique que la transmission des données s'effectue à une vitesse de 600 bauds | ||
1200 | Cette constante indique que la transmission des données s'effectue à une vitesse de 1200 bauds | ||
1800 | Cette constante indique que la transmission des données s'effectue à une vitesse de 1800 bauds | ||
2400 | Cette constante indique que la transmission des données s'effectue à une vitesse de 2400 bauds | ||
4800 | Cette constante indique que la transmission des données s'effectue à une vitesse de 4800 bauds | ||
9600 | Cette constante indique que la transmission des données s'effectue à une vitesse de 9600 bauds | ||
parité | Ce paramètre permet d'indiquer la parité : | ||
Code | MID | Description | |
"O" | ODD | Cette constante indique que le contrôle de parité impaire | |
"E" | EVEN | Cette constante indique que le contrôle de parité paire | |
"N" | NONE | Cette constante indique qu'il n'y a pas de contrôle de parité | |
"M" | MARK | Cette constante indique que le bit de parité égale toujours 1 | |
"S" | SPACE | Cette constante indique que le bit de parité égale toujours 0 | |
donnée | Ce paramètre permet d'indiquer le nombre de bits de données (par défaut 7) : | ||
Valeur | Description | ||
4 | Cette constante indique que la transmission des données s'effectue par groupe de 4 bits | ||
5 | Cette constante indique que la transmission des données s'effectue par groupe de 5 bits | ||
6 | Cette constante indique que la transmission des données s'effectue par groupe de 6 bits | ||
7 | Cette constante indique que la transmission des données s'effectue par groupe de 7 bits | ||
8 | Cette constante indique que la transmission des données s'effectue par groupe de 8 bits | ||
arrêt | Ce paramètre permet d'indiquer le nombre de bits d'arrêt, soit 1 ou 2 (par défaut 1). |
Description
Cette commande permet l'ouverture d'un fichier.
Remarques
- Le fichier est une expression de chaîne de caractères spécifiant un périphérique facultatif, suivie d'un nom de fichier ou d'un chemin d'accès conforme aux conventions de dénomination des fichiers DOS.
- Vous devez ouvrir un fichier avant de pouvoir y effectuer toute opération d'entrée/sortie. L'instruction OPEN alloue un tampon d'entrée/sortie au fichier ou au périphérique et détermine le mode d'accès utilisé avec le tampon.
- Si le paramètre mode est absent, le mode d'accès aléatoire est utilisé par défaut.
- L'expression d'accès spécifie l'opération effectuée sur le fichier ouvert. Si le fichier est déjà ouvert par un autre processus et que le type d'accès spécifié n'est pas autorisé, l'instruction OPEN échoue et un message d'erreur est généré indiquant une autorisation refusée :
- Lorsque l'instruction OPEN est restreint par un processus précédent, il génère une erreur 70 sous DOS :
- Le paramètre numFich (numéro de fichier) est une expression entière dont la valeur est comprise entre 1 et 255. Lorsqu'une instruction OPEN est exécuté, le numéro de fichier est associé au fichier tant qu'il est ouvert. D'autres instructions d'entrée/sortie peuvent utiliser le numéro pour faire référence au fichier.
- Le paramètre lgEnr% (longueur d'enregistrement) est une expression entière qui, si elle est incluse, définit la longueur d'enregistrement (nombre de caractères dans un enregistrement) pour les fichiers à accès aléatoire. Pour les fichiers séquentiels, la longueur par défaut des enregistrements est de 512 octets; pour les fichiers à accès aléatoire, la valeur par défaut est de 128 octets. La valeur de lgEnr% ne peut pas dépasser 32 767 octets. Si le mode de fichier est binaire, la clause LEN est ignorée.
- Pour les fichiers séquentiels, lgEnr% n'a pas besoin de correspondre à une taille d'enregistrement individuelle, car un fichier séquentiel peut avoir des enregistrements de tailles différentes. Lorsqu'il est utilisé pour ouvrir un fichier séquentiel, lgEnr% spécifie le nombre de caractères à charger dans le tampon avant que le tampon soit écrit ou lu sur le disque. Un tampon plus grand signifie plus d'espace pris dans BASIC, mais des entrées/sorties de fichiers plus rapides se produisent. Un tampon plus petit signifie plus de place en mémoire pour BASIC, mais des entrées/sorties plus lentes se produisent. La taille de tampon par défaut est de 512 octets.
- La deuxième syntaxe OPEN ne prend en charge aucune des options d'accès et de partage de fichiers trouvées dans la première syntaxe et est prise en charge pour la compatibilité avec les programmes écrits dans les versions antérieures de BASIC.
- Les périphériques suivants sont pris en charge par BASIC et peuvent être nommés et ouverts avec le paramètre fich$ :
- Le système d'entrée/sortie de fichiers BASIC vous permet de profiter des périphériques installés par l'utilisateur.
- Les périphériques de caractères sont ouverts et utilisés de la même manière que les fichiers disque. Cependant, les caractères ne sont pas mis en mémoire tampon par BASIC comme ils le sont pour les fichiers disque. La longueur d'enregistrement des fichiers de périphérique est définie sur un.
- Le langage de programmation BASIC envoie uniquement un retour chariot à la fin d'une ligne. Si le périphérique nécessite un saut de ligne, le pilote doit le fournir. Lorsque vous écrivez des pilotes de périphérique, gardez à l'esprit que d'autres utilisateurs BASIC voudront lire et écrire des informations de contrôle. L'écriture et la lecture des données de contrôle de périphérique sont gérées par l'instruction IOCTL et la fonction IOCTL$.
- Aucun des périphériques BASIC ne prend directement en charge le mode binaire. Cependant, les périphériques d'impression en ligne (LPT1:, LPT2:) peuvent être ouverts en mode binaire en ajoutant le mot clef BIN :
- L'ouverture d'une imprimante en mode BIN élimine l'impression d'un retour chariot à la fin d'une ligne.
- En modes INPUT, RANDOM et BINARY, vous pouvez ouvrir un fichier sous un numéro de fichier différent sans d'abord fermer le fichier. En mode OUTPUT ou APPEND, vous devez fermer un fichier avant de l'ouvrir avec un numéro de fichier différent.
Permission denied. |
La clause ACCESS ne fonctionne dans une instruction OPEN que si vous utilisez une version de DOS prenant en charge la mise en réseau (versions DOS 3.0 ou ultérieures). En outre, vous devez exécuter le programme SHARE.EXE (ou le programme de démarrage réseau doit l'exécuter) pour effectuer toute opération de verrouillage. Si ACCESS est utilisé avec OPEN, les versions antérieures de DOS renvoient un message d'erreur indiquant :
Advanced feature unavailable. |
Permission denied. |
KYBD:, SCRN:, COMn:, LPTn:, CONS: |
OPEN "LPT1:BIN" FOR OUTPUT AS #1
Exemple
Voici quelques exemples typiques de l'utilisation de cette procédure :
Voir également
Langage de programmation - QuickBASIC/QBasic - Référence de procédures et de fonctions - CLOSE
Langage de programmation - QuickBASIC/QBasic - Référence de procédures et de fonctions - FREEFILE
Langage de programmation - QuickBASIC/QBasic - Référence de procédures et de fonctions - TYPE
Langage de programmation - BASICA/GWBASIC - Référence de procédures et fonctions - OPEN