SEEK

Sommaire


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

 

Syntaxes

SeekFirst + exp_e  [ Usingclasse]
SeekLast - exp_e  [ Usingclasse]
SeekCurr + exp_e  [ Usingclasse]
SeekCurr - exp_e  [ Usingclasse]
Seekexp_e[Usingclasse]

 

Paramètres

 

Description

Restrictions

exp_e

Expressionentière contenant la valeur du décalage à faire

Aucune

classe

Abréviation désignant le fichier ouvert.

Aucune.

 

Exemples

  # 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

 

Description et commentaires

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 Seek estimpossible. Dans ce cas, une erreur ERSEEK est renvoyée.

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.

 

Remarques

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

 

Erreurs associées 

Erreur

Description

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 impossible sur ce typede fichier.

 

Mots-clés associés

OPENI - OPENIO - ADXSEEK - RDSEQ - WRSEQ - GETSEQ - PUTSEQ


SOMMAIRE

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