Section courante

A propos

Section administrative du site

 Langage  Elément  Tutoriel  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Références de mots réservés
Fonctions de conversion de type
Préface
Notes légal
Dictionnaire
Recherche

Fonctions de conversion de type

Le compilateur OmegaSoft Pascal propose une méthode orthogonale de conversion entre les neuf types de données de base : booléen, type d'énumération, caractère, integer, longinteger, hex, longhex, real et string. La méthode consiste à utiliser le type souhaité comme nom de fonction, ou l'identificateur standard enum pour le type énumération.

En général, il n'y a qu'un seul paramètre. Lors de la conversion de réel à autre chose que réel ou chaîne de caractères, un deuxième paramètre peut être utilisé. Le deuxième paramètre peut être round, trunc ou floor et s'il n'est pas utilisé, l'arrondissement sera utilisé. D'autres cas où un second paramètre est autorisé seront signalés le cas échéant. Si vous passez d'un type au même type, aucun code n'est généré. De nombreuses autres instances ne généreront aucun code, il y a aura uniquement des changements dans le type d'expression, ces cas se produisent si le type de paramètre n'est pas mentionné dans la description des fonctions de conversion de type général (boolean, énumération, char, integer, hex, longhex, longinteger, real et string).

conv-parm = (boolean-expression | enumerated-type-expression | character-expression | integer-expression | hex-expression | longhex-expression | longinteger-expression | string-expression)
real-round = real-expression {,(round | trunc | floor) }

BOOLEAN

Convertit son paramètre en une valeur booléenne. Pour les paramètres de type énuméré, caractère, integer, hex, longhex et longinteger, l'octet le moins significatif est simplement traiter comme un ET avec un autre et équivaut à la fonction impaire. Pour un paramètre réel, il est d'abord converti en un entier et il applique un ET. Lors de l'utilisation d'un paramètre de chaîne de caractères, il ne doit pas comporter d'espaces de début et la première lettre doit être un Y, T, N ou F (ou des équivalents minuscules), sinon une erreur de conversion sera générée. Si la première lettre est un Y ou un T alors true sera retourné, si la première lettre est un N ou F alors un booléen false sera retourné.

boolean-function = boolean((conv-parm | real-round))

CHAR

Convertit son paramètre en caractère. Pour les paramètres longhex et longinteger, la valeur de 4 octets est supprimée de la pile, seul l'octet le moins significatif étant conservé. Pour un paramètre réel, la valeur est convertie en un entier et seul l'octet le moins significatif est conservé. Pour un paramètre de chaîne de caractères, un deuxième paramètre est autorisé. Le deuxième paramètre doit être une constante d'octet ou d'entier et spécifie l'octet de la chaîne de caractères à renvoyer sous forme de caractère. Si aucun second paramètre n'est utilisé, le premier octet de données de la chaîne de caractères sera renvoyé. L'utilisation d'un deuxième paramètre de zéro renverra la longueur dynamique.

char-function = char((conv-parm {, (character-constant | integer-constant) } )

CHR

Renvoie un caractère (octet) équivalent à son paramètre. Cela se fait en supprimant les 8 bits les plus significatifs de son paramètre. Si l'option S du compilateur est activée, des vérifications seront générées pour vérifier que les 8 bits les plus significatifs étaient zéro. Si les vérifications de l'intervalle sont activées et qu'elles ne sont pas zéro, une erreur de troncature se produira lors de l'exécution.

chr-function = chr( (integer-expression | hex-expression) )

ENUM

Convertit son paramètre en une valeur de type énuméré. Pour les paramètres longhex et longinteger, la valeur de 4 octets est supprimée de la pile, seul l'octet le moins significatif étant reteint. Pour un paramètre réel, la valeur est convertie en un entier et seul l'octet le moins significatif est conservé. Un paramètre de chaîne de caractères est converti en un entier (voir la fonction INTEGER avec un paramètre de chaîne de caractères) et l'octet le moins significatif est conservé.

FLOOR

Renvoie l'équivalent entier de son paramètre. Le résultat entier sera le plus grand entier inférieur à la valeur réelle. Si le paramètre ne peut pas être représenté sous la forme d'un entier, une erreur de troncature sera générée lors de l'exécution. Quelques exemples :

floor(4.6) = 4
floor(-4,6) = -5

La syntaxe est la suivante :

floor-function = floor( real-expression )

HEX

Renvoie l'équivalent hexadécimal de son paramètre. Si le paramètre est booléen, énuméré ou caractère, un octet de poids fort zéro sera ajouté. Si le paramètre est longhex ou longinteger, alors la valeur de 4 octets est extraite de la pile et les 2 octets les moins significatifs sont conservés. Si le paramètre est réel, alors la valeur sera convertie en un entier et ce résultat sera traité comme un nombre hexadécimal (hex(-10000.0) renverra $D8F0). Avec un paramètre de chaîne de caractères, il ne doit pas comporter d'espaces de début ou de fin, sinon une erreur de conversion sera générée. Les chiffres de 0 à 9 et les lettres de A à F (ou a à f) sont acceptables pour une entrée hexadécimale. Si la valeur dépasse $FFFF, une erreur de conversion se produit.

hex-function = hex( (conv-parm|real-round) )

INTEGER

Renvoie l'équivalent entier de son paramètre. Si le paramètre est booléen, une énuméré ou un caractère, alors un octet le plus significatif sera ajouté étant l'extension de signe de l'octet d'origine. Si le paramètre est longhex ou longinteger, la valeur de 4 octets est extraite de la pile et les 2 octets les moins significatifs sont conservés. Si le paramètre est réel, la valeur sera convertie en un entier. Avec un paramètre de chaîne de caractères, il ne doit pas comporter d'espaces de début ou de fin, sinon une erreur de conversion sera générée. Les chiffres de 0 à 9 et un plus ou un moins en tête sont acceptables pour une entrée décimale. Si la valeur dépasse plus ou moins maxint, une erreur de conversion se produit.

integer-function = integer( (conv-parm|real-round) )

LONGHEX

Renvoie l'équivalent longhex de son paramètre. Si le paramètre est booléen, une énumération ou un caractère, alors 3 octets zéro seront ajoutés comme étant le plus significatif et poussés sur la pile. Si le paramètre est entier ou hexadécimal, il y a 2 octets de zéro sur la pile. Si le paramètre est réel, la valeur sera convertie en un entier long similaire à round, trunc ou floor. La valeur sera alors traitée comme une valeur longhex (longhex(-3437138.0) sera $FFCB8DAE). Avec un paramètre de chaîne de caractères, il ne doit pas comporter d'espaces de début ou de fin, sinon une erreur de conversion sera générée. Les chiffres de 0 à 9 et les lettres de A à F (ou a à f) sont acceptables pour la saisie hexadécimale. Si la valeur dépasse $FFFFFFFF, une erreur de conversion se produit.

longhex-function = longhex( (conv-parm|real-round) )

LONGINTEGER

Renvoie l'équivalent longinteger de son paramètre. Si le paramètre est booléen, une énumération ou un caractère, alors 3 octets seront ajoutés comme le plus significatif reflétant l'extension de signe de l'octet d'origine, et poussés sur la pile. Si le paramètre est entier ou hexadécimal, 2 octets seront ajoutés comme le plus significatif reflétant l'extension de signe de l'octet le plus significatif d'origine, et poussés sur la pile. Si le paramètre est réel, la valeur sera convertie en un entier long similaire à round, trunc ou floor. Avec un paramètre de chaîne de caractères, il ne doit pas comporter d'espaces de début ou de fin, sinon une erreur de conversion sera générée. Les chiffres de 0 à 9 et un plus ou un moins en tête sont acceptables pour une entrée décimale. Si la valeur dépasse plus ou moins maxlint, une erreur de conversion se produit.

longinteger-function = longinteger( (conv-parm|real-round) )

ODD

Renvoie un résultat booléen représentant le bit le moins significatif de son paramètre. Cela vous indique si le paramètre est impair (premier bit un) ou pair (premier bit zéro).

odd-function = odd( (character-expression | integer-expression | hex-expression | longinteger-expression | longhex-expression) )

ORD

Renvoie l'équivalent entier de son paramètre. Si le paramètre est un octet (un booléen, une énumération, un caractère), il ajoutera simplement un octet de poids fort zéro. Si le paramètre est entier ou hexadécimal, aucun code n'est généré.

ord-function = ord( (boolean-expression | character-expression | enumerated-expression | hex-expression | integer-expression) )

REAL

Retour l'équivalent réel de son paramètre. Si le paramètre est booléen, une énumération ou un caractère, le signe sera étendu à un entier, puis converti en réel. Si le paramètre est integer, hex, longhex ou longinteger, il sera converti en réel (conversion signée). Avec un paramètre de chaîne de caractères, il ne doit pas avoir d'espace de début ou de fin, sinon une erreur de conversion sera générée. Les chiffres de 0 à 9, un plus ou un moins en tête et un E ou e pour l'exposant sont acceptables pour une entrée en virgule flottante. Si la valeur dépasse 5E-19 ou 5E18, une erreur de conversion se produit.

real-function = real( (conv-parm | real-expression) )

ROUND

Renvoie l'équivalent entier de son paramètre. Le résultat entier sera l'entier le plus proche de la valeur réelle. Si le paramètre ne peut pas être représenté sous la forme d'un entier, une erreur de troncature sera générée lors de l'exécution. Quelques exemples :

round(4.6) = 5
round(-4,6) = -5

La syntaxe est la suivante :

round-function = round( real-expression )

STRING

Renvoie la chaîne de caractères ASCII équivalente à son paramètre. La chaîne de caractères renvoyée est au même format que lorsque les valeurs sont écrites dans un fichier texte sans champ de largeur de champ (pas de blanc de début ou de fin). Si le paramètre est une énumération, son équivalent entier est converti en chaîne de caractères. Si le paramètre est un caractère, il est converti en une chaîne de caractères de longueur un. Si le paramètre est de type real, il ajoute un paramètre octet ou entier supplémentaire à utiliser comme précision (même fonction que dans la procédure write).

string-function = string( (conv-parm | real-expression [,(character-expression | integer-expression]) )

TRUNC

Renvoie l'équivalent entier de son paramètre. Le résultat entier sera la valeur réelle avec sa partie fractionnaire mise à zéro. Si le paramètre ne peut pas être représenté sous la forme d'un entier, une erreur de troncature sera générée lors de l'exécution. Quelques exemples :

trunc(4.6) = 4
trunc(-4,6) = -4

La syntaxe est la suivante :

trunc-function = trunc( real-expression )


PARTAGER CETTE PAGE SUR
Dernière mise à jour : Jeudi, le 9 juillet 2020