PreviousNext
Help > Développement > Fonctions W-Langage pour AS/400 > Fonctions IFS > ASfLit
ASfLit

 Lecture d’un fichier de l’IFS

 

Syntaxe 1 (conseillée)

 

<Résultat1> = ASfLit(<id_ouverture>, <taille>, <données>)

 

Syntaxe 2

 

<Résultat2> = ASfLit(<id_ouverture>, <taille>)

 

 

En anglais : ASfRead

 

Paramètres

 

<Résultat1> : entier

Nombre d’octets ou de caractères lus (suivant le mode d’ouverture).

<Résultat2> : Buffer

Données lues

<id_ouverture> : Entier

Entier fourni par la fonction ASfCree ou ASfOuvre.

<données> : Buffer ou chaine de caractères allouée

Espace de données destiné à recevoir la lecture

<taille> : Entier optionnel

Nombre d’octets ou de caractères à lire.

 

La syntaxe 1 est avantageuse car convertit dans le type fourni (depuis ou vers Unicode si nécessaire), indépendamment du type d’ouverture.

 

Le nombre donné en paramètre et en résultat correspond à la taille « naturelle », soit :

Pour la syntaxe 1 : 

·     un nombre d’octets si le type de données du paramètre 3 est binaire ou texte

·     un nombre de caractères si le type de données du paramètre 3 est Unicode.

Pour la syntaxe 2 : 

·     un nombre d’octets si le mode d’ouverture est binaire ou texte

·     un nombre de caractères Unicode si le mode d’ouverture est en Unicode.

 

Exemple :

Cet exemple télécharge un fichier *SAVF vers un répertoire local :

(depuis MY_LIB/MYSAVF vers c:\temp\mysavf.savf)

nHdl, cnt est entier

buf est Buffer

nFicLocal est entier

 

nHdl = ASfOuvre("/QSYS.LIB/MY_LIB.LIB/MYSAVF.FILE", ASfoBinaire)

IF nHdl = -1 ALORS

 Erreur(ErreurInfo())

 RETOUR

END

nFicLocal = fOuvre("c:\temp\mysavf.savf",foEcriture+foCréation)

IF nFicLocal = -1 ALORS

 Erreur(ErreurInfo())

 RETOUR

END

 

cnt = ASfLit(nHdl, 65000, buf)

TANTQUE cnt<>0

 fEcrit(nFicLocal, buf, cnt)

 cnt = ASfLit(nHdl, 65000, buf)

FIN

fFerme(nFicLocal)

ASfFerme(nHdl)