RDSEQ

Sommaire


Rdseqpermet de lire les données d'un fichier texte ouvert par Openi ou Openio.

 

Syntaxe

   Rdseqliste_varia[ Usingclasse]

 

Paramètres

Elément

Description

Restrictions

liste_varia

Liste desvariables à lire, séparées par le caractère ','.

Aucune.

variable

Variable exprimée sous l'une des formes suivantes :
nom_de_variable
nom_de_variable '('
lis_exp_dim')'

Aucune.

lis_exp_dim

Listed'exp_dim, séparées par le caractère ','.

Le nombre d'exp_dim ne doit pas dépasser le nombre de dimensions de la variable.

exp_ind

Expression entière d'une dimension de la variable.

Doit être comprise entre l'indice de début et l'indice de fin de la dimension considérée.

classe

Abréviation désignant le fichier ouvert.

Aucune.

 

Exemples

   # Lecture du fichier passwd
    Char NAME(20), PASSWORD(20)
    Integer USR_NO, GROUP_NO
    Char COMMENT(50), LOGIN_DIR(50), SHELL(50)
    Openi "/etc/passwd"
    adxifs = ':' : adxirs = chr$(10)
    Repeat
     
Rdseq NAME,PASSWORD,USR_NO,GROUP_NO,COMMENT,LOGIN_DIR,SHELL
   #  ... Suite du traitement de la ligne ...
    Until fstat <> 0
    Openi

   # Lecture des 10 premiers mots de la ligne
    Char MOTS(30)(10)
    adxirs = ' '   :# 1 espace
    adxifs = chr$(10)
   
Rdseq MOTS

   # Lecture sur 3 fichiers séquentiels des 10 premiers mots de la ligne
    Char MOT1(30)(10)
    Char MOT2(30)(10)
    Char MOT3(30)(10)
    adxirs = ' '   :# 1 espace
    adxifs = chr$(10)
   
Openi filpath('TRT','ZINSTRUC1','txt') Using [FIC1]
   Openi filpath('TRT','ZINSTRUC2','txt') Using [FIC2]
   Openi filpath('TRT','ZINSTRUC3','txt') Using [FIC3]
   Rdseq MOT1 Using [FIC1]
   Rdseq MOT2 Using [FIC2]
   Rdseq MOT3 Using [FIC3]
   Openi Using [FIC1]
   Openi Using [FIC2]
   Openi Using [FIC3]

Description et commentaires

Rdseqlit enregistrement par enregistrement un ensemble de champs. Chaque champ est lu comme une chaîne de caractères et transféré dans la variable correspondante, après une traduction automatique.

La clause Using permet de préciser la classe du fichier texte sur lequel on lit. Il est maintenant possible de traiter plusieurs fichiers texte en même temps.

Dans le cas d'une variable mono-dimensionnée pour laquelle on ne précise pas d'indice, on lit autant de champs que la variable comporte d'éléments (dans la mesure du possible, comme cela est expliqué plus bas). Dans le cas d'une variable multi-dimensionnée, on devra nécessairement faire suivre son nom d'une au moins de ses dimensions (ce qui nous ramène au cas d'une variable mono-dimensionnée) ou d'un ensemble d'indices (pour caractériser un élément particulier de la variable).

Rdseqs'utilise conjointement avec les variables système Adonix adxirs pour définir le séparateur d'enregistrements et adxifs pour définir le séparateur de champs et adxium pour définir le codage de la chaîne de caractères :

Ces trois variables peuvent être affectées pour chaque fichier pour l'instruction Iomode.

Attention ! Rdseqne peut pas lire un fichier codé en UCS2.

Pour être lu entièrement par Rdseq, chaque champ doit contenir au plus 255 caractères. La lecture se fait dans tous les cas jusqu'à la fin de l'enregistrement ou du fichier. Si un enregistrement du fichier comporte plus de champs que le nombre de variables donné en argument, les champs restants sont ignorés; dans le cas inverse, les variables 'en trop' sont mises à zéro.

Les champs vides sont possibles et acceptés dans le cas où le séparateur de champs n'est pas l'espace. Si ce séparateur est l'espace, plusieurs espaces sont considérés comme un seul séparateur (ce qui permet de séparer des mots sans se préoccuper du nombre d'espaces entre chaque mot).

On peut lire un clob depuis un fichier séquentiel au format défini par adxium par l'instruction Rdseq.  

 

Remarques

La variable système Adonix fstat est mise à 1 si la lecture a buté sur la fin du fichier. Dans ce cas, les variables qui n'ont pas pu être lues sont remises à 0.

La fonction adxseek(0) ou adxseek(classe) (pour un fichier ouvert avec une classe) permet de connaître la position courante (en nombre d'octets) par rapport au début du fichier. Cette variable vaut -1 si aucun fichier séquentiel n'a été ouvert en lecture.

Un fichier ASCII contenant des lettres accentuées ne peut pas être lu en UTF8. On aurait l'erreur suivante : "valeur indéfinie".

 

Erreurs associées

Erreur

Description

ERDIM(55)

Variableà plus de 2 dimensions.

ERVARI( 6)

Variableinexistante.

ERCLAS( 7)

Classeinexistante.

 

Mots-clés associés

WRSEQ - OPENI - OPENIO - ADXSEEK - SEEK - FSTAT - ADXIFS- ADXIRS - ADXIUM - IOMODE


SOMMAIRE

 

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