OPENIO |
Openiopermet d'ouvrir et de fermer un fichier séquentiel en lecture et en écriture.
Openio [ exp_nomfic [, exp_depl ] ] [ Usingabrev]
Elément | Description | Restrictions |
Expression de type Char dont le résultat est le chemin d'un fichier (Unix ou MS-DOS) | Aucune. | |
Expression numérique de la valeur initiale du déplacement (seek). | 0 <= | |
Abréviation désignant le fichier ouvert. | Aucune. |
# Ouverture d'un fichier avec saut des 10 premiers caractères
Openiofilpath('tmp','rdfile',''), 10
# Fermeture du dernier fichier ouvert pour lecture et écriture
Openio
# On veut lire sur l'entrée standard (clavier)
# et écrire sur la sortie standard (écran)
Openio"*"
# Ouverture s'un fichier se trouvant sur la machine "distrib"
Openio"distrib@"+[L]NOMFIC
# Ouverture du fichier X3.ini se trouvant sur le client
Openio"#@C:\X3\X3.ini"
# Ouverture de deux fichiers
Openiofilpath('tmp','rdfile1','') Using [YYY]
Openiofilpath('tmp','rdfile2','') Using [ZZZ]
# Fermeture des deux fichiers précédemment ouverts
Openio Using [YYY]
Openio Using [ZZZ]
Openiopermet d'ouvrir un fichier pour lecture et écriture par Rdseq, Wrseq, Putseq et Getseq.
Par convention, le poste client est désigné par le serveur #.
La valeur donnée en 2ème paramètre permet de débuter les lectures/écritures à une position donnée du fichier. En son absence, la lecture/écriture débutera en début de fichier. Dans tous les cas, l'ordre Seek permet de se déplacer pendant la lecture, et les fonctions adxseek(0), adxseek(1) ou adxseek(abrev) permettent de connaître la position dans le fichier. Bien évidemment, aucune troncature n'est faite sur le fichier; par contre celui-ci est agrandi si l'on écrit au delà de la fin du fichier. Si l'on fait un Seek au delà du fichier, puis l'on écrit, la portion du fichier non écrite sera remplie de caractères nuls.
La clause Using permet d'attribuer une abréviation à un fichier séquentiel ouvert. Par conséquent, il est possible d'ouvrir jusqu'à 16 fichiers séquentiels simultanément sous réserve de la valeur du paramètre adxmso.
Fichier sans abréviation :
Fichier avec abréviation :
Si Openioest utilisé avec un nom de fichier égal à '*', l'entrée standard d'Adonix (enprincipe le clavier) et la sortie standard (en principe l'écran) sont affectésau fichier ouvert, ce qui permet de lire les caractères reçus du clavier sansdécodage. Openioutilisé sans paramètre fera cesser cette affectation.
L'ouverture par Openiofaite sur un fichier inexistant ne crée pas de fichier (contrairement à Openoqui le crée si on tronque ou si on écrit en fin de fichier), mais provoquel'erreur PAFIC.
adxseek(0) est utilisé pour les positions de lecture et adxseek(1) pour lespositions d'écriture. Lorsque le fichier a été ouvert par
Les écritures dans un fichier étant bufferisées, elles ne sont effectivesqu'après la fermeture de ce fichier par une des instructions Openo ou
Il importe de prendre garde aux accès concurrents à un fichier ouvert par
En web, il n'est pas possible d'ouvrir un fichier sur le poste client.
ERMODE(10) | exp_nomficn'est pas de type Char ou exp_depl n'est pas de type numérique. |
ERDOM(50) | exp_depl< 0. |
ERACCE(27) | Accèsimpossible (permission refusée). |
PAFIC(20) | Fichier(ou répertoire du chemin d'accès) inexistant. |
ERSEEK(57) | Lefichier est l'entrée/sortie standard (exp_nomfic='*') et exp_depl <> 0. |
ERCHAN(60) | Pasassez de canaux disponibles pour l'ouverture (qui en nécessite 2). |
ERSYST(25) | Erreursystème (problème de connexion sur la machine distante). |
OPENI - OPENO - SEEK - GETSEQ - PUTSEQ - RDSEQ - WRSEQ - IOMODE - ADXIFS - ADXIRS - ADXIUM - ADXSEEK - ADXMAC - ADXMSO
Adonix X3(r) L4G |