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)

Nom Type de donnée Entrée/Sortie Description

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)

Nom Type de donnée Entrée/Sortie Description

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)

Nom Type de donnée Entrée/Sortie Description
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)

Nom Type de donnée Entrée/Sortie Description
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

Contrôler une valeur <numeric> (SPK_IsSPKformat)

Fonction de contrôle qu'une valeur est numérique (signée ou décimale)

Nom Type de donnée Entrée/Sortie Description

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

Related Links