System.Val

De RAD Studio API Documentation
Aller à : navigation, rechercher

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 S doit contenir des chiffres (les séparateurs décimaux ou de milliers ne sont pas pris en charge.</br>
  • Si V est une variable de type entier (Single, Double, etc.), alors S doit 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


Exemples de code