Constantes

23.04.2021

Les constantes utilisées dans FPScript sont soumises à des règles syntaxiques spécifiques, où, sur la base de la notation utilisée, FlexPro peut reconnaître le type de données ainsi que la valeur.

Lesnombres entiers peuvent être écrits en notation décimale, octale et hexadécimale. Les nombres octaux s'écrivent avec un zéro en tête et ne peuvent contenir que les chiffres 0 à 7. Les nombres hexadécimaux s'écrivent avec une combinaison de tête 0x et peuvent contenir les chiffres 0 à 9 et A à F. L'affichage des hexadécimaux et des octaux est intéressant pour les données numériques car il existe une relation directe entre les nombres et les bits qui les représentent. Pour les nombres octaux, trois bits sont l'équivalent d'un chiffre, et pour les nombres hexadécimaux, quatre bits sont l'équivalent d'un chiffre. Veuillez noter que seule la notation est différente pour les entiers. En interne, tous les entiers sont enregistrés sous forme binaire.

FlexPro peut traiter des valeurs à virgule flottante avec une résolution de 16, 32 et 64 bits. Vous pouvez contrôler la résolution en ajoutant un 'S' ou 's' pour 'court' ou un 'L' ou 'l' pour 'long'. Si vous ajoutez le suffixe 'N' ou 'n', cela correspond à des entiers de 32 ou 64 bits, selon le format dans lequel la constante peut être stockée.

Voici des exemples d'entiers de 16 bits :

123s

Décimal

0427s

Octal

0x1afs

Hexadécimal

Voici des exemples d'entiers de 32 bits :

100000n, 12n

Décimal

01024341121, 0123

Octal

0x10A00FF, 0x1A, 0x1a

Hexadécimal

Voici des exemples d'entiers de 64 bits :

10000000000n, 12L

Décimal

071024341121, 0123L

Octal

0x1010A00FF, 0x1AL, 0x1aL

Hexadécimal

Les valeurs à virgule flottante sont constituées d'une mantisse avec des chiffres entiers et fractionnaires et d'un exposant facultatif avec un e ou E. Les valeurs à virgule flottante peuvent également être une valeur invalide. Cette valeur est affichée comme ?.

FlexPro peut traiter des valeurs à virgule flottante avec une résolution de 32 et 64 bits. Les valeurs à virgule flottante de 32 bits sont précises à environ sept décimales, et les valeurs à virgule flottante de 64 bits sont précises à environ 15 décimales. Vous pouvez également contrôler la résolution en ajoutant un "S" ou "s" pour "court" ou un "L" ou "l" pour "long". Si vous n'ajoutez pas de suffixe, cela correspond toujours à des valeurs à virgule flottante de 64 bits, ce qui signifie que le suffixe "L" peut toujours être omis.

Remarque : Pour le code FPScript, le point décimal (.) est toujours le symbole décimal, même si dans les paramètres des options régionales et linguistiques du panneau de configuration de Windows, vous avez spécifié la virgule (,), qui est couramment utilisée dans certains pays européens.

Voici des exemples de valeurs à virgule flottante de 32 bits :

1.23s, 1.234e-12s, 1e+13s, 0.1e12s, 5.s, ?s

FlexPro ne reconnaît pas si la plage de valeurs ou la résolution a été dépassée. Si vous souhaitez obtenir des valeurs à virgule flottante de 64 bits, vous devez omettre le "s".

Voici des exemples de valeurs à virgule flottante de 64 bits :

1.23, 1.234e-12, 1e+13, 0.1e12L, 5.L, ?, ?L

En général, les espaces ne peuvent pas être utilisés dans les nombres, pas même entre la mantisse et l'exposant. Si un débordement se produit pendant un calcul, FlexPro ne peut pas le reconnaître ! Vous devez vous assurer que la plage de valeurs du type de données est suffisante pour effectuer le calcul.

Exemple :

1000 * 1000

Génère un dépassement de capacité car le résultat, 1.000.000, ne tient pas dans un entier de 16 bits ! (Solution : 1000n * 1000n)

Remarque : Interprétés comme des nombres décimaux auxquels vous n'avez pas ajouté de suffixe ou de point décimal, selon que le paramètre Interpréter les nombres décimaux sans point décimal comme des valeurs à virgule flottante est activé ou non dans l'onglet Général de la boîte de dialogue des propriétés de la base de données. Cette option est activée par défaut, ce qui signifie que les nombres sont interprétés comme des valeurs à virgule flottante de 64 bits. Ce paramètre permet d'éviter les erreurs d'arrondi accidentelles qui peuvent se produire lors de l'utilisation de l'arithmétique des nombres entiers. La division intégrale 1 / 2 donne 0 et non 0,5, par exemple.

Lesnombres complexes sont constitués d'une partie réelle et d'une partie imaginaire, soit sous la forme de a + bi, soit séparées par des virgules et placées entre parenthèses. Vous pouvez utiliser toutes les notations ci-dessus pour les constantes de la partie réelle et de la partie imaginaire. S'il en résulte des types de données différents pour les parties réelles et imaginaires, celles-ci sont adaptées les unes aux autres avant d'être combinées en un nombre complexe afin qu'il n'y ait pas de perte de résolution. Dans le FPScript, la virgule (,) est toujours le séparateur de liste, même si dans les paramètres des options régionales et linguistiques du panneau de configuration de Windows, vous avez spécifié le point-virgule ( ;), qui est couramment utilisé dans certains pays européens.

Des exemples de nombres complexes sont :

(1.23s, 1.234e-12s) , (1e+13, 0x1), (5.L, ?), 1 + 2i, -3.2 - 7.6i, 5.2i, ?i, 2s + 5si

Leschaînes de caractères sont saisies sous forme de texte délimité par des guillemets. Il existe des séquences de contrôle spécifiques pour les caractères spéciaux, tels qu'une tabulation ou un caractère de retour. Ces séquences commencent toutes par un caractère "\".

Remarque : Si vous souhaitez utiliser le caractère "\" dans votre texte, vous devrez l'inclure deux fois dans la chaîne. Le chemin d'accès au fichier C:\Data.txt doit être écrit sous la forme de la chaîne "C:\Data.txt" par exemple.

Séquence de contrôle

Signifie

\b

Retour en arrière

\f

Alimentation en formulaires

\n

Nouvelle ligne

\r

Retour chariot

\t

Onglet horizontal

\v

Onglet vertical

\'

Guillemets simples

\"

Double guillemet

\\

Backslash

\oooooo

Caractères UNICODE en notation octale

\xhhhh

Caractères UNICODE en notation hexadécimale

Des exemples de chaînes de caractères sont :

"Un texte", "C:\Data\\\File.txt",", « Deux\r\nlignes"

Le type de données Empty peut également être utilisé comme une constante pour vider une variable utilisée dans une formule, par exemple. Pour ce faire, il suffit d'écrire Empty:

Résultat = Vide

Lesvaleurs de l'heure du calendrier se composent de la date et de l'heure, les secondes en chiffres fractionnaires étant facultatives. Seuls trois formats sont autorisés dans FPScript. Si vous séparez les éléments de date par ".", la séquence sera Jour.Mois.Année, et si vous utilisez "/" comme séparateur, elle sera interprétée comme Mois/Jour/Année. Si vous utilisez '-' comme séparateur, il est interprété comme Année-Mois-Jour. L'année peut être saisie en deux ou quatre chiffres. Dans le format à deux chiffres, pour les valeurs inférieures à 70, on ajoute 2000, sinon on ajoute 1900. Pour les types de données à virgule flottante, ainsi que pour les temps calendaires, la valeur est invalide si '?/?/?' Les éléments relatifs à l'heure sont toujours spécifiés dans le format HH:MM:SS.ss. Vous pouvez omettre les éléments de temps en partant de la droite s'ils sont nuls. Les constantes au format heure civile doivent généralement être écrites entre guillemets simples :

En option, vous pouvez spécifier le fuseau horaire dans lequel la constante de valeur de l'heure du calendrier doit être interprétée. Pour ce faire, ajoutez le décalage horaire en heures par rapport au temps universel coordonné (UTC), par ex. "UTC+1". Si vous ne spécifiez pas de fuseau horaire, les constantes de la valeur de temps calendaire sont interprétées en heure locale, c'est-à-dire qu'elles sont converties au format UTC utilisé pour le stockage interne en tenant compte des paramètres du fuseau horaire dans Windows et, le cas échéant, de l'heure d'été.

'23.10.2004 12:13:24.123'

Valeur du temps du calendrier avec une résolution de 1ms

'10/23/2011 12:13:24.123'

Valeur du temps du calendrier écrite en notation anglaise avec une résolution de 1ms

'2004-10-23 12:13:24.123'

Valeur de l'heure du calendrier sous la forme année-mois-jour

'23.10.2004 12'

Valeur de l'heure du calendrier 23.10.2004 à midi

'23.10.2004'

Valeur de l'heure du calendrier 23.10.2004 à minuit

'1.1.24'

Valeur de l'heure du calendrier 1.1.2024 à minuit

'1.1.98'

Valeur de l'heure du calendrier 1.1.1998 à minuit

'?/?/?'

Valeur invalide de l'heure du calendrier

'1.2.2021 13:14'

1.2.2021, 13:14 en heure locale

'1.2.2021 13:14 UTC'

1.2.2021, 13:14 en Temps Universel Coordonné (UTC)

'1.2.2021 13:14 UTC-2'

1.2.2021, 13:14 en UTC moins 2 heures

'1.2.2021 13:14 UTC+2:30' or '1.2.2021 13:14 UTC+2.5'

1.2.2021, 13:14 UTC plus 2 heures, 30 minutes

Lesvaleurs de l'intervalle de temps sont constituées des éléments suivants : jour, heure, minute, seconde. Vous pouvez spécifier les secondes en utilisant des chiffres fractionnaires en option. Les éléments sont spécifiés dans le format J:HH:MM:SS.ss. Il n'est pas nécessaire de spécifier tous les éléments. Si vous spécifiez deux éléments, ils sont interprétés comme HH:MM. Si vous spécifiez trois éléments, ils sont alors interprétés comme HH:MM:SS, et quatre éléments sont alors interprétés comme D:HH:MM:SS. Pour le résultat, FlexPro utilise trois ou quatre éléments comme norme. Le jour est omis si l'intervalle de temps est inférieur à 24 heures. Les constantes au format heure civile doivent généralement être écrites entre guillemets simples :

'12:13:24.123'

Valeur de la plage de temps avec une résolution de 1 ms

'13:24'

Valeur de l'intervalle de temps de 13 heures et 24 minutes

'2:01:30:00' or '49:30'

Valeur de l'intervalle de temps : 2 jours, 1 heure et 30 minutes

'?:?:?'

Valeur de l'intervalle de temps non valide

Remarque : Les valeurs de l'heure du calendrier et de l'intervalle de temps ont la seconde comme unité implicite. Le symbole de l'unité n'est toutefois pas affiché.

Constantes prédéfinies

FPScript reconnaît une série de constantes prédéfinies. Les noms des constantes ne peuvent pas être utilisés comme noms d'objets ou comme noms de variables. Il s'agit des constantes mathématiques PI = 3,141592654L et E = 2,718281828L ainsi que d'une série de constantes qui ont une signification prédéfinie en tant que paramètres des fonctions.

Vous serez probablement intéressé par les articles suivants :