FILETOBUF

Icône du lien vers le conceptVoir également

Crée un tampon mémoire (buffer) en utilisant le contenu d'un fichier ASCII .

Support WebVue - Oui.

Syntaxe 1

LongVal = FILETOBUF(Filename);

Type de retour : LONG

Argument

Définition

Filename

Nom du fichier à partir duquel le buffer est créé. Type STR.
Si exécutée dans le contexte d'une session WebVue, cette instruction est traitée par le back end web, en conséquence de quoi le fichier doit exister sur la machine back end web.

Exécution

Lecture du fichier et retour du handle du buffer. Le buffer est automatiquement alloué à la taille exacte du fichier.

Le handle du buffer alloué si OK, sinon 0.

Syntaxe 2

LongVal = FILETOBUF(Filename, Size);

Argument

Définition

Filename

Nom du fichier à partir duquel le buffer est créé. Type STR.
Si exécutée dans le contexte d'une session WebVue, cette instruction est traitée par le back end web, en conséquence de quoi le fichier ou dossier sera créé sur la machine back end web.

Size

Taille du buffer à créer. Tout type numérique.

Type de retour : LONG

Exécution

Un buffer est créé en mémoire et le handle (adresse de démarrage) est retourné par la fonction. Le buffer est alloué à la taille demandée. Si le fichier est plus grand que la taille maximale autorisée d'un buffer (voir la note ci-dessous), alors le buffer n'est pas créé.

Retour : Le handle du buffer alloué si OK, sinon 0 (fichier plus grand que Size).

Le dossier par défaut pour les noms de fichiers relatifs est le dossier \TP.
Il n'est pas nécessaire d'utiliser l'instruction ALLOC_BUFFER avant d'utiliser FILETOBUFcar l'espace mémoire est automatiquement allouée, mais la désallocation du buffer doit être réalisée avec l'instruction FREE_BUFFER une fois que celui-ci n'a plus besoin d'être conservé en mémoire.

Exemple

'This program uses the file UTIL.TXT in the project TP folder

SUB Main()

DIM StrFilename as Str;

DIM strLine as Str;

DIM lngBuffer as Long;

 

StrFilename = "util.txt"; 'File name

lngBuffer = FILETOBUF(StrFilename);'The test file must exist

strLine = CGET_BUFFER (lngBuffer,0,20); 'Print the first 20 characters

FREE_BUFFER(lngBuffer );

PRINT(strLine);

END SUB