SEQ_BUFFER

Icône du lien vers le conceptVoir également Icône du lien vers le conceptExemple

Manipulation d'enregistrements et de champs dans un buffer.

Support WebVue - Oui.

Mode

Mnémonique

Syntaxe

1 CLEAR 1
2 PUT_LINE 2
3 BEGIN 3
4 END 3
5 NEXTFIELD 4, 7
6 PREVFIELD 4, 7
7 SEEKFIELD 5
8 REPLACEFIELD 6
8 INSERTFIELD 6
9 CRLFTOCR 3, 8
10 CRTOCRLF 3, 8
11 LEN 3
12 ASCIITOANSI 3
13 ANSITOASCII 3

Syntaxe 1

IntVal = SEQ_BUFFER(Mode, Handle);

Type de retour : INTEGER

Argument

Définition

Handle

Handle du buffer alloué par l'instruction ALLOC_BUFFER. Type LONG.

Exécution

Mode

Mnémonique

Action

1

CLEAR

Le contenu du buffer est supprimé.

 

 

Retour : 1 si OK, 0 sinon.

Syntaxe 2

IntVal = SEQ_BUFFER(Mode, Handle, Text);

Type de retour : INTEGER

Argument

Définition

Handle

Handle du buffer alloué par l'instruction ALLOC_BUFFER. Type LONG.

Text

Ligne de texte à placer dans le buffer. Type STR.

Exécution

Mode

Mnémonique

Action

2

PUT_LINE

La chaîne de caractères Text est ajouté à la position courante dans le buffer Handle.

 

 

1 si OK, -1 dans le cas d'un buffer plein, 0 sinon.

Syntaxe 3

IntVal = SEQ_BUFFER(Mode, Handle);

Type de retour : INTEGER excepté pour le mode 11 où le type de retour est LONG.

Argument

Définition

Handle

Handle du buffer alloué par l'instruction ALLOC_BUFFER. Type LONG.

Exécution

Mode

Mnémonique

Action

3

BEGIN

Positionne le pointeur au début du buffer.

4

END

Positionne le pointeur en fin de buffer.

9

CRLFTOCR

Convertit toutes les occurrences de Carriage return - Line Feed trouvées dans le buffer en Carriage Return.

10

CRTOCRLF

Convertit toutes les occurrences de Carriage Return trouvées dans le buffer en Carriage Return - Line Feed.

11

LEN

Retourne la longueur du buffer.

12

ASCIITOANSI

Convertit les caractères ASCII du buffer en ANSI.

13

ANSITOASCII

Convertit les caractères ANSI du buffer en ASCII.

 

 

Retour : 1 si OK, 0 sinon (excepté Mode 11 – voir ci-dessus).

CRTOCRLF nécessite suffisamment d'espace dans le buffer pour les caractères ajoutés lors du remplacement de toutes les instances de CR en CRLF. Par exemple, il ne fonctionnera pas et retournera 0 si appelé avec un buffer créé directement par FILETOBUF car cela crée un buffer avec le nombre exact de caractères pour le fichier original.

Syntaxe 4

IntVal = SEQ_BUFFER(Mode, Handle, Separator, ResultHandle);

Type de retour : INTEGER

Argument

Définition

Handle

Handle du buffer contenant un nombre de valeurs délimitées. Type LONG.

Separator

Caractère utilisé pour séparer les valeurs dans le buffer. Type STR.

ResultHandle

Handler du buffer dans lequel le résultat de l'instruction est placé.

Exécution

Mode

Mnémonique

Action

5

NEXTFIELD

Récupère le champ à la position courante dans le buffer Handle et la place dans le buffer ResultHandle.

6

PREVFIELD

Récupère le champ à la position précédente dans le buffer Handle et la place dans le buffer ResultHandle.

 

 

Renvoi : 1 si réussi, -1 si le champ demandé est plus grand que le buffer et donc tronqué le résultat, sinon 0.

Syntaxe 5

IntVal = SEQ_BUFFER(Mode, IncPosition, Handle, Separator);

Type de retour : INTEGER

Argument

Définition

IncPosition

Nombre de champs par lesquels le pointeur est déplacé (négatif ou positif, en comptant les champs à partir de la position courant du pointeur). Type INTEGER

Handle

Handle du buffer contenant un nombre de valeurs délimitées. Type LONG.

Separator

Caractère utilisé pour séparer les valeurs dans le buffer. Type STR.

Exécution

Mode

Mnémonique

Action

7

SEEKFIELD

Déplace le pointeur d'un offset de IncPosition en nombre de champs.

 

 

Retour : 1 si OK, 0 sinon.

Syntaxe 6

IntVal = SEQ_BUFFER(Mode, IncPosition, Handle, Separator, StringOrBuff);

Type de retour : INTEGER

Argument

Définition

IncPosition

Compteur de champs déterminant la position du champ dans le buffer à remplacer et dans lequel une nouvelle chaîne de caractère est positionnée. Doit être supérieur à 0. Type : INTEGER.

Handle

Handle du buffer contenant un nombre de valeurs délimitées. Type LONG.

Separator

Caractère utilisé pour séparer les valeurs dans le buffer. Type STR.

StringOrBuff

Caractère utilisé pour séparer les valeurs dans le buffer. Type STR ou LONG.

Exécution

Mode

Mnémonique

Action

8

REPLACEFIELD or INSERTFIELD

Remplace ou insère une nouvelle chaîne StringOrBuff dans le buffer Handle à la position champ courant plus l'offset IncPosition en nombre de champs.

 

 

Retour : 1 en cas de succès, sinon 0 en cas d'échec ou si le contenu du buffer est tronqué en raison d'un dépassement de buffer.

Les modes REPLACEFIELD et INSERTFIELD sont synonymes. Cette instruction vient toujours remplacer un champ par un autre. Pour conserver un champ existant, il doit être inclus dans l'argument Chain avant ou après les nouvelles valeurs du champ. Ceci aura l'effet d'une insertion.

Si la longueur de la chaîne de caractères du nouveau champ(s) à insérer est plus grande que celle de la chaîne qu'elle remplace, vous devez vous assurer que le buffer est suffisamment grand, sinon l'exécution échouera. Soyez attentifs lorsque vous utiliser cette instruction avec des buffers qui ont été initialisés avec FILETOBUF.

Par exemple, pour insérer un champ nField_i avant un champ existant oField_i, utilisez :

SEQ_BUFFER("INSERTFIELD", i, Handle, ",", "nField_i, oField_i"

Syntaxe 7

RetVal = SEQ_BUFFER(Mode, Handle, Separator, SubMode);

Type de retour : Dépend de l'argument Sous-Mode.

Argument

Définition

Handle

Handle du buffer contenant un nombre de valeurs délimitées. Type LONG.

Separator

Caractère utilisé pour séparer les valeurs dans le buffer. Type STR.

SubMode

Chaîne déterminant le type de valeur à lire et le type de retour :

STR - String.
INT - Integer.
DOUBLE - Double.
FLOAT - Float.

Exécution

Mode

Mnémonique

Action

5

NEXTFIELD

Retourne la valeur typée à la position courante dans le buffer Handle.

6

PREVFIELD

Retourne la valeur typée à la position précédente dans le buffer Handle.

Si les types de champs dans le buffer sont mélangés, il y a lieu de les lire en format STR puis de les interpréter.

Syntaxe 8

LongVal = SEQ_BUFFER(Mode, Handle, "New_Buffer");

Type de retour : LONG

Argument

Définition

Handle

Handle du buffer alloué par l'instruction ALLOC_BUFFER. Type de retour : LONG.

Exécution

Mode

Mnémonique

Action

9

CRLFTOCR

Convertit toutes les occurrences de Carriage return - Line Feed trouvées dans le buffer en Carriage Return.

Le résultat est placé dans New_Buffer.

10

CRTOCRLF

Convertit toutes les occurrences de Carriage Return trouvées dans le buffer en Carriage Return - Line Feed.

Le résultat est placé dans New_Buffer.

 

 

Retour : Le handle de New_Buffer si OK, 0 sinon.

Exemple

Pour un exemple, sélectionner le lien Exemple ci-dessus.