Conversion de données – Fonctions en C
Des prototypes de ces fonctions sont disponibles dans :
- Le fichier ITR501.h situé pour :
- UNIX dans le répertoire $RDJ_EXEC/exit
- Windows dans le répertoire %RDJ_EXEC%\exit
- Le fichier ITR501 dans la librairie MVS SCRLIB.H
Pour plus d’information sur les valeurs renvoyées lors d’une conversion, reportez-vous à Valeurs de retour.
Convertir un <unsigned numeric> en <packed> (SPK_Num2Pack)
szValNum
|
char
|
I
|
Valeur de la donnée numérique à convertir : Cette valeur ne doit pas contenir le signe + Ce champ doit être alloué dans le programme appelant
|
nNbDecimale
|
int
|
I
|
Nombre éventuel de décimales Si ce nombre n'est pas nul, une virgule décimale est attendue dans szValNum
|
sValPacke
|
char
|
O
|
Valeur de la donnée convertie au format packé. Ce champ doit être alloué dans le programme appelant
|
Valeur de retour
|
|
|
- Nombre d'octets packés
- -1 si conversion KO
|
Convertir de <packed> en <numeric> (SPK_Pack2Num)
sValPacke
|
char
|
I
|
Valeur de la donnée packée à convertir : Ce champ doit être alloué dans le programme appelant
|
sLgPack
|
int
|
I
|
Taille en octets de la donnée packée
|
nLgRubDepack
|
int
|
I
|
Taille en octets de la donnée numérique attendue
|
nNbDecimale
|
int
|
I
|
Nombre éventuel de décimales dans la donnée numérique attendue Si ce nombre n'est pas nul, une virgule décimale est générée dans sValNum
|
szValNum
|
char
|
O
|
Demande de contrôle de la donnée à convertir
Mettre ce champ à 1 pour vérifier que la donnée à convertir est de type packé
|
bCheck
|
int
|
I
|
Valeur de la donnée convertie en format numérique
Cette zone doit être allouée dans le programme appelant
Sa longueur doit être égale à nLgRubDepack + 2 (un caractère pour le signe et un pour \0)
|
Valeur de retour
|
|
|
- 1 : conversion OK
- 0 : contrôle de type packé KO
|
Convertir de <numeric> à <signed> (SPK_Num2Sign)
szValNum |
char |
I |
Valeur de la donnée <numeric> à convertir : cette valeur ne doit pas contenir le signe "+" Ce champ doit être alloué dans le programme appelant |
sValSignee |
char |
O |
Valeur de la donnée convertie au format signé. Ce champ doit être alloué dans le programme appelant |
Valeur de retour |
|
|
- Longueur de la valeur signée si OK
- -1 si conversion KO
|
Convertir de <signed> en <numeric> (SPK_Sign2Num)
sValSignee |
char |
I |
Valeur de la donnée signée à convertir : Ce champ doit être alloué dans le programme appelant |
nLgSign |
int |
I |
Taille en octets de la donnée à convertir |
szValNum |
char |
O |
Demande de contrôle de la donnée à convertir
Mettre ce champ à 1 pour vérifier que la donnée à convertir est de type signé
|
bCheck |
char |
O |
Valeur de la donnée convertie au format numérique. Ce champ doit être alloué dans le programme appelant
Sa longueur doit être égale à nLgRubDepack + 2 (1 caractère pour le signe et un pour \0)
|
Valeur de retour |
|
|
- 1 : conversion OK
- 0 : contrôle de type signé KO
|
Fonction de contrôle qu'une valeur est numérique (signée ou décimale)
szVal
|
char
|
I
|
Valeur de la donnée numérique à contrôler : Ce champ doit être alloué dans le programme appelant
|
nEntier
|
int
|
I
|
Type de la donnée :
- 1 : la donnée est un entier (elle ne contient pas de décimale)
- 0 : la donnée n'est pas un entier (elle contient des décimales)
|
Valeur de retour
|
|
|
- 1 : conversion OK
- 0: le contrôle a échoué
|
Valeurs de retour
Les valeurs de retour des fonctions SPKxxx sont :
- -1 : SPK_ERR_NUM2X
- 0 : SPK_ERR_X2NUM
SPK_ERR_FORMAT
- 1 : SPK_OK