GETSEQ |
Getseqpermet de lire des données à partir d'un fichier binaire ouvert par Openi ou Openio.
Getseq exp_ent, liste_varia [ Using classe]
Elément | Description | Restrictions |
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 |
Abréviation désignant le fichier ouvert. | Aucune. |
# 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
Openi
#
# Après ce traitement :
"fghi" |
0 | 1 | 2 | 3 | 4 | 5 | 6 | |
"jklmn" |
# 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
#
# Après ce traitement :
'pqrst' |
# l'exemple ci-dessus peux aussi s'écrire
Char Y(5) (2,3)
Openi filpath("TXT", "TEST","") Using [ZZZ]
Getseq
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 | ||
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 | ||
Decimal n.m défini dans une classe [F] | Lenombre au format DCB C-Isam. | (n+m+e+3)/2 |
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.
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.
ERMODE(10) | exp_entn'est pas de type entier. |
ERDIM(55) | Variableayant plus d'une dimension. |
OPENI - OPENIO - SEEK - ADXSEEK - PUTSEQ - RDSEQ - WRSEQ - FSTAT
Adonix X3(r) L4G |