SDK
Tableaux

Fonctions

void SPI_LOC_ClearTab ()
 Désalloue tous les tableaux présent en mémoire.
 
int SPI_LOC_find_first_array ()
 Trouve le premier tableau libre et renvoi son numéro.
 
int SPI_LOC_read_one_in_array (int pos, void *adr, int ind)
 Lit un champs dans un tableau.
 
int SPI_LOC_read_one_int_in_array (int pos, int *ival, int ind)
 Lit un entier dans un tableau.
 
int SPI_LOC_read_one_real_in_array (int pos, double *rval, int ind)
 Lit un réel dans un tableau.
 
int SPI_LOC_read_one_TR3_in_array (int pos, double *rval, int ind)
 Lit un tableau de 3 réels dans un tableau.
 
int SPI_LOC_read_one_TR9_in_array (int pos, double *rval, int ind)
 Lit un tableau de 9 réels dans un tableau.
 
int SPI_LOC_read_one_TC255_in_array (int pos, std::string &sval, int ind)
 Lit une chaîne dans un tableau.
 
int SPI_LOC_read_number_in_array (int ind)
 Lit le nombre de champs dans un tableau.
 
int SPI_LOC_alloc_array (int typ, int nb, int ind)
 Alloue un tableau à une taille donnée.
 
int SPI_LOC_write_one_in_array (int pos, const void *adr, int ind)
 Ecrit un champs dans un tableau.
 
int SPI_LOC_write_one_int_in_array (int pos, int ival, int ind)
 Ecrit un entier un tableau.
 
int SPI_LOC_write_one_real_in_array (int pos, double rval, int ind)
 Ecrit un réel dans un tableau.
 
int SPI_LOC_write_one_TR3_in_array (int pos, const double *rval, int ind)
 Ecrit un tableau de 3 réels dans un tableau.
 
int SPI_LOC_write_one_TR9_in_array (int pos, double *rval, int ind)
 Ecrit un tableau de 9 reels dans un tableau.
 
int SPI_LOC_write_one_TC255_in_array (int pos, const std::string &sval, int ind)
 Ecrit une chaîne dans un tableau.
 
int SPI_LOC_free_array (int ind)
 Désalloue un tableau.
 
int SPI_LOC_realloc_array (int nnb, int ind)
 Réalloue un tableau à une taille donnée.
 
int SPI_LOC_write_multi_in_array (int pos, int n, void *adr, int ind)
 Ecrit plusieurs valeurs dans un tableau.
 
int SPI_LOC_read_multi_in_array (int pos, int n, void *adr, int ind)
 Lit plusieurs valeurs dans un tableau.
 

Description détaillée

Gestion des tableaux

Documentation des fonctions

◆ SPI_LOC_alloc_array()

int SPI_LOC_alloc_array ( int typ,
int nb,
int ind )

Alloue un tableau à une taille donnée.

Paramètres
[in]indindice du tableau à allouer
[in]typtype de champ à allouer (voir doc Globales)
[in]nbnombre de champ à allouer
Renvoie
SPI_YES si OK | SPI_NO si ind >= MAXAOC ou allocation impossible...
Remarques
1) TOUJOURS tester l'erreur en sortie de fonction
2) TOUJOURS liberer le tableau avant de le réallouer

liste des types disponible
  • SPI_LOC_TYPINT : entier
  • SPI_LOC_TYPDOU : double
  • SPI_LOC_TYPCHR : caractère
  • SPI_LOC_TYPC20 : chaîne de 20 caractères
  • SPI_LOC_TYPC40 : chaîne de 40 caractères
  • SPI_LOC_TYPC80 : chaîne de 80 caractères
  • SPI_LOC_TYPC255 : chaîne de 255 caractères
  • SPI_LOC_TYPTR3 : Tableaux de 3 doubles (Point)
  • SPI_LOC_TYPTR9 : Tableaux de 9 doubles (formes canonique)
iloc := ICALL(SPI_LOC_find_first_array);
ier := ICALL(SPI_LOC_alloc_array,SPI_LOC_TYPINT,10,iloc);
int SPI_LOC_alloc_array(int typ, int nb, int ind)
Alloue un tableau à une taille donnée.
Definition sp_loc01.c:352
int SPI_LOC_find_first_array()
Trouve le premier tableau libre et renvoi son numéro.
Definition sp_loc01.c:58

◆ SPI_LOC_ClearTab()

void SPI_LOC_ClearTab ( )

Désalloue tous les tableaux présent en mémoire.

Version
6.04

◆ SPI_LOC_find_first_array()

int SPI_LOC_find_first_array ( )

Trouve le premier tableau libre et renvoi son numéro.

Renvoie
indice du tableau | -1 si tous occupés
iloc := ICALL(SPI_LOC_find_first_array);

◆ SPI_LOC_free_array()

int SPI_LOC_free_array ( int ind)

Désalloue un tableau.

Paramètres
[in]indindice du tableau à désallouer
Renvoie
SPI_YES si Ok | SPI_NO si erreur
ier := ICALL(SPI_LOC_free_array,iloc);
int SPI_LOC_free_array(int ind)
Désalloue un tableau.
Definition sp_loc01.c:649

◆ SPI_LOC_read_multi_in_array()

int SPI_LOC_read_multi_in_array ( int pos,
int n,
void * adr,
int ind )

Lit plusieurs valeurs dans un tableau.

Paramètres
[in]posposition dans le tableau
[in]nnombre de champs toujours >= 1
[in]indindice du tableau dans lequel il faut lire
[out]adradresse de la table des champs à lire
Renvoie
SPI_YES si Ok | SPI_NO si erreur
ier := ICALL(SPI_LOC_read_multi_in_array,1,3,pt,iloc);
int SPI_LOC_read_multi_in_array(int pos, int n, void *adr, int ind)
Lit plusieurs valeurs dans un tableau.
Definition sp_loc01.c:773

◆ SPI_LOC_read_number_in_array()

int SPI_LOC_read_number_in_array ( int ind)

Lit le nombre de champs dans un tableau.

Paramètres
[in]indindice du tableau
Renvoie
nombre de champs du tableau
nb := ICALL(SPI_LOC_read_number_in_array,iloc);
int SPI_LOC_read_number_in_array(int ind)
Lit le nombre de champs dans un tableau.
Definition sp_loc01.c:319

◆ SPI_LOC_read_one_in_array()

int SPI_LOC_read_one_in_array ( int pos,
void * adr,
int ind )

Lit un champs dans un tableau.

Paramètres
[in]posposition dans le tableau
[in]indindice du tableau dans lequel il faut lire
[out]adradresse de la valeur lue
Renvoie
SPI_YES si Ok | SPI_NO si erreur
ier := ICALL(SPI_LOC_read_one_in_array,1,ival,iloc);
int SPI_LOC_read_one_in_array(int pos, void *adr, int ind)
Lit un champs dans un tableau.
Definition sp_loc01.c:90

◆ SPI_LOC_read_one_int_in_array()

int SPI_LOC_read_one_int_in_array ( int pos,
int * ival,
int ind )

Lit un entier dans un tableau.

Version
6.04
Paramètres
[in]posposition dans le tableau
[in]indindice du tableau dans lequel il faut lire
[out]ivalvaleur entière lue
Renvoie
SPI_YES si Ok | SPI_NO si erreur
ier := ICALL(SPI_LOC_read_one_int_in_array,1,ival,iloc);
int SPI_LOC_read_one_int_in_array(int pos, int *ival, int ind)
Lit un entier dans un tableau.
Definition sp_loc01.c:128

◆ SPI_LOC_read_one_real_in_array()

int SPI_LOC_read_one_real_in_array ( int pos,
double * rval,
int ind )

Lit un réel dans un tableau.

Version
6.04
Paramètres
[in]posposition dans le tableau
[in]indindice du tableau dans lequel il faut lire
[out]rvalvaleur réelle lue
Renvoie
SPI_YES si Ok | SPI_NO si erreur
ier := ICALL(SPI_LOC_read_one_real_in_array,1,rval,iloc);
int SPI_LOC_read_one_real_in_array(int pos, double *rval, int ind)
Lit un réel dans un tableau.
Definition sp_loc01.c:167

◆ SPI_LOC_read_one_TC255_in_array()

int SPI_LOC_read_one_TC255_in_array ( int pos,
std::string & sval,
int ind )

Lit une chaîne dans un tableau.

Version
6.04
Paramètres
[in]posposition dans le tableau
[in]indindice du tableau dans lequel il faut lire
[out]svalchaîne lue
Renvoie
SPI_YES si Ok | SPI_NO si erreur
ier := ICALL(SPI_LOC_read_one_TC255_in_array,1,sval,iloc);
int SPI_LOC_read_one_TC255_in_array(int pos, std::string &sval, int ind)
Lit une chaîne dans un tableau.
Definition sp_loc01.c:276

◆ SPI_LOC_read_one_TR3_in_array()

int SPI_LOC_read_one_TR3_in_array ( int pos,
double * rval,
int ind )

Lit un tableau de 3 réels dans un tableau.

Version
6.04
Paramètres
[in]posposition dans le tableau
[in]indindice du tableau dans lequel il faut lire
[out]rvaltableau lu
Renvoie
SPI_YES si Ok | SPI_NO si erreur
ier := ICALL(SPI_LOC_read_one_TR3_in_array,1,ival,iloc);
int SPI_LOC_read_one_TR3_in_array(int pos, double *rval, int ind)
Lit un tableau de 3 réels dans un tableau.
Definition sp_loc01.c:202

◆ SPI_LOC_read_one_TR9_in_array()

int SPI_LOC_read_one_TR9_in_array ( int pos,
double * rval,
int ind )

Lit un tableau de 9 réels dans un tableau.

Version
6.04
Paramètres
[in]posposition dans le tableau
[in]indindice du tableau dans lequel il faut lire
[out]rvaltableau lu
Renvoie
SPI_YES si Ok | SPI_NO si erreur
ier := ICALL(SPI_LOC_read_one_TR9_in_array,1,ival,iloc);
int SPI_LOC_read_one_TR9_in_array(int pos, double *rval, int ind)
Lit un tableau de 9 réels dans un tableau.
Definition sp_loc01.c:237

◆ SPI_LOC_realloc_array()

int SPI_LOC_realloc_array ( int nnb,
int ind )

Réalloue un tableau à une taille donnée.

Paramètres
[in]indindice du tableau à réallouer
[in]nnbnombre total de champs du tableau
Renvoie
SPI_YES si OK | SPI_NO si ind >= MAXAOC ou réallocation impossible...
ier := ICALL(SPI_LOC_realloc_array,12,iloc);
int SPI_LOC_realloc_array(int nnb, int ind)
Réalloue un tableau à une taille donnée.
Definition sp_loc01.c:691

◆ SPI_LOC_write_multi_in_array()

int SPI_LOC_write_multi_in_array ( int pos,
int n,
void * adr,
int ind )

Ecrit plusieurs valeurs dans un tableau.

Paramètres
[in]posposition dans le tableau
[in]nnombre de champs toujours >= 1
[in]adradresse de la table des champs à écrire
[in]indindice du tableau dans lequel il faut écrire
Renvoie
SPI_YES si Ok | SPI_NO si erreur
ier := ICALL(SPI_LOC_write_multi_in_array,1,3,pt,iloc);
int SPI_LOC_write_multi_in_array(int pos, int n, void *adr, int ind)
Ecrit plusieurs valeurs dans un tableau.
Definition sp_loc01.c:732

◆ SPI_LOC_write_one_in_array()

int SPI_LOC_write_one_in_array ( int pos,
const void * adr,
int ind )

Ecrit un champs dans un tableau.

Paramètres
[in]posposition dans le tableau
[in]adradresse de la variable à écrire
[in]indindice du tableau dans lequel il faut écrire
Renvoie
SPI_YES si Ok | SPI_NO si erreur
Remarques
Il faut toujours utiliser une variable adresse pour écrire une valeur
ier := ICALL(SPI_LOC_write_one_in_array,1,ival,iloc);
int SPI_LOC_write_one_in_array(int pos, const void *adr, int ind)
Ecrit un champs dans un tableau.
Definition sp_loc01.c:428

◆ SPI_LOC_write_one_int_in_array()

int SPI_LOC_write_one_int_in_array ( int pos,
int ival,
int ind )

Ecrit un entier un tableau.

Version
6.04
Paramètres
[in]posposition dans le tableau
[in]ivalentier à écrire
[in]indindice du tableau dans lequel il faut écrire
Renvoie
SPI_YES si Ok | SPI_NO si erreur
ier := ICALL(SPI_LOC_write_one_int_in_array,1,ival,iloc);
int SPI_LOC_write_one_int_in_array(int pos, int ival, int ind)
Ecrit un entier un tableau.
Definition sp_loc01.c:471

◆ SPI_LOC_write_one_real_in_array()

int SPI_LOC_write_one_real_in_array ( int pos,
double rval,
int ind )

Ecrit un réel dans un tableau.

Version
6.04
Paramètres
[in]posposition dans le tableau
[in]rvalréel à écrire
[in]indindice du tableau dans lequel il faut écrire
Renvoie
SPI_YES si Ok | SPI_NO si erreur
ier := ICALL(SPI_LOC_write_one_real_in_array,1,rval,iloc);
int SPI_LOC_write_one_real_in_array(int pos, double rval, int ind)
Ecrit un réel dans un tableau.
Definition sp_loc01.c:506

◆ SPI_LOC_write_one_TC255_in_array()

int SPI_LOC_write_one_TC255_in_array ( int pos,
const std::string & sval,
int ind )

Ecrit une chaîne dans un tableau.

Version
6.04
Paramètres
[in]posposition dans le tableau
[in]svalchaîne à ecrire
[in]indindice du tableau dans lequel il faut écrire
Renvoie
SPI_YES si Ok | SPI_NO si erreur
ier := ICALL(SPI_LOC_write_one_TC255_in_array,1,ival,iloc);
int SPI_LOC_write_one_TC255_in_array(int pos, const std::string &sval, int ind)
Ecrit une chaîne dans un tableau.
Definition sp_loc01.c:611

◆ SPI_LOC_write_one_TR3_in_array()

int SPI_LOC_write_one_TR3_in_array ( int pos,
const double * rval,
int ind )

Ecrit un tableau de 3 réels dans un tableau.

Version
6.04
Paramètres
[in]posposition dans le tableau
[in]rvaltableau de 3 réels à écrire
[in]indindice du tableau dans lequel il faut écrire
Renvoie
SPI_YES si Ok | SPI_NO si erreur
ier := ICALL(SPI_LOC_write_one_TR3_in_array,1,ival,iloc);
int SPI_LOC_write_one_TR3_in_array(int pos, const double *rval, int ind)
Ecrit un tableau de 3 réels dans un tableau.
Definition sp_loc01.c:541

◆ SPI_LOC_write_one_TR9_in_array()

int SPI_LOC_write_one_TR9_in_array ( int pos,
double * rval,
int ind )

Ecrit un tableau de 9 reels dans un tableau.

Version
6.04
Paramètres
[in]posposition dans le tableau
[in]rvaltableau de 9 réels à écrire
[in]indindice du tableau dans lequel il faut écrire
Renvoie
SPI_YES si Ok | SPI_NO si erreur
ier := ICALL(SPI_LOC_write_one_TR9_in_array,1,ival,iloc);
int SPI_LOC_write_one_TR9_in_array(int pos, double *rval, int ind)
Ecrit un tableau de 9 reels dans un tableau.
Definition sp_loc01.c:576