GETSEQ

Sommaire


Getseqpermet de lire des données à partir d'un fichier binaire ouvert par Openi ou Openio.

 

Syntaxe

  Getseqexp_ent, liste_varia [Usingclasse]

 

Paramètres

Elément

Description

Restrictions

exp_ent

Expression entière du nombre d'éléments à lire.

0 < exp_ent < 2^31

liste_varia

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

Lesvariables ont au plus 1 dimension

classe

Abréviation désignant le fichier ouvert.

Aucune.

 

Exemples

# Le fichier TEST commence par la suite des lettresde l'alphabet : abcdefghijklmnopqrstuvwxyz
# Lecture à partir du 6ème octet de ce fichier, de 3 éléments.
# Ces éléments sont placés dans une chaîne et un tableau de chaînes de caractères.

Char X(4), Y (5)(9)
Openi filpath("TXT", "TEST",""), 5
Getseq 3, X, Y
Openi

#
# Après ce traitement :

 

x =

"fghi"

 

0

1

2

3

4

5

6

y =

"jklmn"

"opqrs"

 

# C omme ci-dessus, le fichier TEST commence par la suite des lettres
# de l'alphabet : abcdefghijklmnopqrstuvwxyz

Char Y(5) (2,3)
Openi filpath("TXT", "TEST","")
Getseq 4, Y(0), Y(1)
#
#  Après ce traitement :

 

0

1

2

y(0,.)

'abcde'

'fghij'

'klmno'

y(1,.)

'pqrst'

' '

' '

 

# l'exemple ci-dessus peux aussi s'écrire
Char Y(5) (2,3)
Openi filpath("TXT", "TEST","") Using [ZZZ]
Getseq 4, Y(0), Y(1)Using [ZZZ]

Description et commentaires

Getseqlit dans le dernier fichier ouvert par Openi ou Openio des éléments dont le nombre est donné par exp_ent et les copie dans la liste de variables données en arguments de l'instruction.

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

Lorsqu'il y a des tableaux d'éléments dans la liste, on peut omettre la dernière dimension. Dans le cas de tableaux mono-dimensionnés, on pourra donc indiquer le nom du tableau sans précision d'indice. Les éléments lus dans le fichier sont copiés dans ces variables dans l'ordre croissant de l'indice de la dimension omise jusqu'à épuisement du nombre de valeurs à lire.

Les éléments sont lus selon la structure interne des variables données en arguments. Le tableau suivant donne le format et le nombre d'octets utilisés suivant les types des variables :

TAILLE ET FORMAT DESINFORMATIONS ECRITES PAR PUTSEQ LUES PAR GETSEQ

Type de la variable

Format sur le fichier séquentiel

Octets

Libelle

Sous la forme d'un octet dont la valeur va de 0 à 255.

1

Char

Sous la forme d'un octet dont la valeur va de 0 à 255.

1

Shortint

Un entier court signé sur 2  octets dans l'ordre partie haute et partie basse.

2

Date  définie dans une classe [F]

Le nombre de jours sur 3 octets en commençant par la partie la plus haute.

3

Date définie dans une autre classe

Le nombre de jours sur 4 octets en commençant par la partie la plus haute (comme Integer).

4

Integer

Un entier signé sur 4 octets en commençant par la partie haute.

4

Float

Flottantau format de la machine.

souvent4

Double

ouble précision au format de la machine.

souvent8

 

TAILLE ET FORMAT DES INFORMATIONS ECRITES PAR PUTSEQ LUES PAR GETSEQ

Type de la variable

Format sur le fichier séquentiel

Octets

Decimal n.m  défini dans une classe [F]

Lenombre au format DCB C-Isam.

(n+m+e+3)/2
m pair       : e=0
m impair  : e=1

Decimal défini dans une autre classe

Le nombre au format DCB C-Isam avec la précision maximale.

16

Ainsi  qu'on  le  remarque dans ce tableau, les variables de type Date   ont une taille de 3 octets dans la classe [F] (le but étant de prendre  le  moins de place possible dans la table), alors que dans la classe   [V]  ou  [L],  elles  prennent la place d'un entier long. De même, les  nombres décimaux sont automatiquement déclarés avec une taille maximum si on les déclare ailleurs que dans   les  tables. L'écriture de variables de type Float ou Double crée un fichier non portable (de même celle de variables de type Decimal définies dans une classe autre que [F]).

On peut lire un Blob ( et éventuellement un clob ) depuis un fichier séquentiel par l'instruction Getseq.

Remarques

La variable système Adonix fstat est mise à 1 si la lecture a buté sur la fin du fichier.

Les variables qui n'ont pu être affectées par l'instruction Getseq soit parce que l'on a atteint la fin du fichier, soit parce que le nombre d'éléments lus est inférieur au nombre d'éléments donnés en arguments, sont mises à zéro.

Si le nombre d'éléments à lire est supérieur au nombre total des éléments donnés en arguments, aucune erreur n'est signalée.

La fonction adxseek(0) ou adxseek(classe) (pour un fichier ouvert avec une classe) donne à tout moment la position (en nombre d'octets) par rapport au début du fichier. Elle vaut -1 si aucun fichier n'a été ouvert en lecture.

 

Erreurs associées

Erreur

Description

ERMODE(10)

exp_entn'est pas de type entier.

ERDIM(55)

Variableayant plus d'une dimension.

 

Mots-clés associés

OPENI - OPENIO - SEEK - ADXSEEK - PUTSEQ - RDSEQ - WRSEQ - FSTAT


SOMMAIRE

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