System.Val
Delphi
procedure Val(S: String; var V; var Code: Integer);
Propriétés
| Type | Visibilité | Source | Unité | Parent |
|---|---|---|---|---|
| procedure | public | System.pas | System | System |
Description
Convertit en nombre une chaîne qui représente un entier (décimal ou hexadécimal).
Dans le code Delphi, la procédure Val convertit la valeur chaîne S en son équivalent numérique, comme si elle était lue depuis un fichier texte, via Read. $1234 et 0x1234 sont les notations hexadécimales qui sont prises en charge.
S est une expression de type chaîne ; il doit s'agir d'une séquence de caractères formant un nombre réel signé, "1", "-2" ou "+3".
V peut être une variable de type entier ou de type réel. </br>
- Si {code|V}} est une variable de type entier (entier, Int64, etc.), alors
Sdoit contenir des chiffres (les séparateurs décimaux ou de milliers ne sont pas pris en charge.</br> - Si
Vest une variable de type entier (Single, Double, etc.), alorsSdoit contenir des séparateurs décimaux ou de milliers.
Code est une variable de type Integer.
Si la chaîne n'est pas valide, l'indice du caractère erroné est stocké dans Code ; sinon, Code est mis à zéro. Pour une chaîne à zéro terminal (AZT), la position renvoyée par Code est supérieure d'une unité à l'indice de base zéro du caractère erroné.
Exemple
procedure Test_Val;
var
LFval: Double;
LIVal: Integer;
LCode: Integer;
begin
// Using integral type
Val('1234', LIVal, LCode); // Valid
if LCode = 0 then
WriteLn('LIVal = ', LIVal);
Val('123.456', LIVal, LCode); // Not valid
if LCode <> 0 then
WriteLn('LCode = ', LCode);
// Using floating type
Val('1234', LFVal, LCode); // Valid
if LCode = 0 then
WriteLn('LFVal = ', LFVal);
Val('123.456', LFVal, LCode); // Valid
if LCode = 0 then
WriteLn('LFVal = ', LFVal);
end;
Voir aussi