OPENIO

Sommaire


Openiopermet d'ouvrir et de fermer un fichier séquentiel en lecture et en écriture.

 

Syntaxe

   Openio [ exp_nomfic [, exp_depl ] ]  [ Usingabrev]

 

Paramètres

Elément

Description

Restrictions

exp_nomfic

Expression de type Char dont le résultat est le chemin d'un fichier (Unix ou MS-DOS)

Aucune.

exp_depl

Expression numérique de la valeur initiale du déplacement (seek).

0 <=exp_depl <= taille du fichier.

abrev

Abréviation désignant le fichier ouvert.

Aucune.

 

Exemples

   # 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]

 

Description et commentaires

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.

 

Remarques

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 Openio, cesdeux valeurs sont toujours identiques.

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 Openio. Ceciimplique qu'avant cette opération, la taille du fichier sur disque peut être inchangéeaprès des Putseq/Wrseq. On peut utiliser l'ordre Seek 0 pour vider les tamponsd'écriture.

Il importe de prendre garde aux accès concurrents à un fichier ouvert par Openio. Pourgérer les problèmes d'accès à un même fichier, il est conseiller de verrouillerun symbole (voir Lock). Il faut garder à l'esprit que les transactions nes'appliquent pas à la mise à jour de fichiers séquentiels.

Particularités Web

En web, il n'est pas possible d'ouvrir un fichier sur le poste client.

Erreurs associées

Erreur

Description

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).

 

Mots-clés associés

OPENI - OPENO - SEEK - GETSEQ - PUTSEQ - RDSEQ - WRSEQ - IOMODE - ADXIFS - ADXIRS - ADXIUM - ADXSEEK - ADXMAC - ADXMSO


SOMMAIRE

Adonix X3(r) L4G
Copyright (c) Adonix 1999 - All rights reserved