SEEK |
Seekpermet de déplacer le pointeur de lecture d'un fichier ouvert par Openi ouOpenio
Seekpermet également (avec une valeur nulle) de forcer l'écriture sur le fichier(flush).
Seek
Seek
Seek
Seek
Seek
exp_e | Expressionentière contenant la valeur du décalage à faire | Aucune |
Abréviation désignant le fichier ouvert. | Aucune. |
# Ouverture d'un fichier, et lecture de 10 octets tous les 20 octets
Char BUFFERS(10)(MAXLIGNES)
Openi "FICHIER"
fstat = 0 : I = 0
Repeat
Getseq 1, BUFFERS(I) : I += 1
Seek 10
Until fstat <> 0 or I >= MAXLIGNES
Openi
# Réécriture des 50 derniers octets d'un fichier
Libelle BUFFER(50)
Openio "FICHIER"
Seek Last - 50
Getseq 50, BUFFER
# .. Modification de BUFFER
Seek Last - 50
Putseq 50, BUFFER
Openio
# Si 2 fichiers sont ouverts :
# Réécriture des 50 derniers octets du 2ème fichier
Libelle BUFFER(50)
Openi "FICHIER1" Using [YYY]
Openi "FICHIER2" Using [ZZZ]
Seek Last - 50 Using [ZZZ]
Getseq 50, BUFFER Using [ZZZ]
Openi Using [ZZZ]
Openi Using [YYY]
# Ecriture de 1 octet avec "flush"
Putseq 1, UN_OCTET
Seek 0
Seekpermet de déplacer le pointeur de lecture ou de lecture / écriture dans le casd'un fichier ouvert par Openi ou Openio. On peut se déplacer :
Dans la syntaxe "Seekexp_e", le déplacement se fait par rapport à la position courante.
Sur certains fichiers (comme des pipes, ou certains devices), le
La syntaxe "Seek0", ou Seek(qui équivaut à un non-déplacement du pointeur) provoque un vidage des tamponsd'écriture (flush), car les fonctions d'écriture sont toutes bufferisées. Cettesyntaxe est donc utilisable sur tous types de fichiers; si aucun fichier n'aété ouvert en écriture, elle ne provoque pas d'erreur mais ne fait rien.
La fonction adxseek(0) ou adxseek(classe) (pour un fichier ouvert avec uneclasse) permet à tout moment de connaître la position courante (en nombred'octets) par rapport au début du fichier. Cette variable vaut -1 si aucunfichier séquentiel n'a été ouvert en lecture, mais elle est mise à jour même sion ne peut pas faire de Seeksur le fichier (dans ce cas, sa valeur initiale est 0 et elle est incrémentéedu nombre d'octets lus ou écrits).
ERMODE(10) | L'argumentn'est pas de type numérique. |
ERDOM(50) | L'argumentn'est pas de type entier. |
ERGFIC(24) | Aucunfichier ouvert en Openi ou Openio. |
ERSEEK(57) | Seek |
OPENI - OPENIO - ADXSEEK - RDSEQ - WRSEQ - GETSEQ - PUTSEQ
Adonix X3(r) L4G |