"evalue" permet d'évaluer une formule contenue dans une chaîne de caractères.
evalue ( chaîne_à_évaluer [, exp_tok] )
Elément | Description | Restrictions |
chaîne_à_évaluer | Expression alphanumérique contenant la formule de calcul à évaluer. | Aucune. |
exp_tok | Réservé | Aucune. |
# Alimentation des champs REP1 et REP2 de la ligne courante du tableau du masque SDH1 par la valeur des champs REP(0) et REP(1) du masque SDH2.
For I=0 To 1
Assign ("[M:SDH1]REP"+num$(I+1)+"(nolign-1)")
With evalue("[M:SDH2]REP("+num$(I)+")")
Next
# Gestion des erreurs dans l'évaluation d'une chaîne calculée
Local Char FORMULE(100), RESULTAT(100)
Local Integer ERN
# En cas d'erreur, aller en ERCALC, où ERN sera mis à jour.
Onerrgo ERCALC
# Traduction des mots-clés
FORMULE = "date$$"
ERN = 0
# on évalue la formule et on la formatte en chaîne.
# vireblc supprime les espaces superflus.
RESULTAT = vireblc(format$("K:100X", evalue(FORMULE)), 2)
# Si ERN est non nul, on est passé par ERCALC
# affichage du message : "Erreur en calcul : caractère illégal"
If ERN
Errbox "Erreur en calcul :"-errmes$(ERN)
Endif
End
# Sous-programme de gestion d'erreur : errn a un sens ici seulement
ERCALC
ERN = errn
Resume
# concaténation pour une variable multi-dimensionnée
Local Char WHER(50)(3)
WHER(0)="ABREV='Orig' "
WHER(1)="And MOT>='A'"
Local File AABREV[ABR] where evalue(WHER)
...
"evalue" permet d'évaluer le contenu d'une chaîne de caractères contenant une formule de calcul.
Si la variable contenue dans la fonction "evalue" est multi-dimensionnée et de type caractère, les chaînes composants le tableau sont concaténées. C'est une concaténation brute : Il sera parfois nécessaire de préciser un blanc en fin de chaîne.