Retourner en haut
DELPHI CONVERSION DES CHAÎNES DE CARACTÈRES EN NOMBRES

Vous trouverez sur cette page des exemples. Comment convertir en nombre une chaîne qui représente un entier (décimal ou hexadécimal).? Comment convertir une chaîne de caractères en valeur à virgule flottante? Comment convertir une chaînes de caractères en valeurs d'un TDateTime ou TDate?

CONVERSION DE CHAÎNES EN NOMBRES :


StringToWideChar :

StringToWideChar : Convertir une chaîne ANSI vers UNICODE et stocke le résultat dans une mémoire tampon spécifiée.

function StringToWideChar(const Source: UnicodeString; Dest: PWideChar; DestSize: Integer): PWideChar;
EXEMPLE :
procedure TForm1.Button1Click(Sender: TObject);
var
  wideChars   : array[0..20] of WideChar;
  laChaine    : String;

begin
  LaChaine := 'Bonjour à vous';

  // Copie la chaîne dans un tableau au format WideChar
  StringToWideChar(LaChaine, wideChars, 15);

  // Affiche la copie
  Label1.Caption := WideCharToString(wideChars);
  // Label1.Caption = Bonjour à vous
end;


StrToCurr :

StrToCurr : Convertir une chaîne représentant une valeur en virgule flottante en une valeur Currency.

function StrToCurr(const S: string): Currency;
function StrToCurr(const S: string; const AFormatSettings: TFormatSettings): Currency;
EXEMPLE :
procedure TForm1.Button1Click(Sender: TObject);
var
  ChaineValue : string;
  currValue   : Currency;
 begin
  // chaîne source contenant une représentation numérique
  ChaineValue := '12345,6789';
 
  // Convertit la virgule en point
  currValue  := StrToCurr(ChaineValue);
  // currValue = 12345.6789
 
 Label1.Caption := CurrToStr(currValue);
  // Label1.Caption = 12345,6789
end;


StrToDate :

StrToDate : Convertir une chaîne spécifiant une date (J/M/A) en TDateTime.

function StrToDate(const S: string): TDateTime;
function StrToDate(const S: string; const AFormatSettings: TFormatSettings): TDateTime;
EXEMPLE :
procedure TForm1.Button1Click(Sender: TObject);
var
  LaDate : TDateTime;
 begin
  LaDate := StrToDate('27/06/22');
  Label1.Caption := '27/06/22 : '+DateToStr(LaDate);
  // Label1.Caption = 27/06/22 : 27/06/2022
  LaDate := StrToDate('27/06/2022');
  Label1.Caption := '27/06/2022 : '+DateToStr(LaDate);
  // Label1.Caption = 27/06/2022 : 27/06/2022
end;


StrToDateTime :

StrToDateTime : Convertir une chaîne spécifiant une date et heure (J/M/A HH:MM:SS) en TDateTime.

function StrToDateTime(const S: string): TDateTime;
function StrToDateTime(const S: string; const AFormatSettings: TFormatSettings): TDateTime;
EXEMPLE :
procedure TForm1.Button1Click(Sender: TObject);
var
  LaDateetHeure : TDateTime;
 begin
  LaDateetHeure := StrToDate('27/06/22 12');
  Label1.Caption := '27/06/22 12 : '+DateToStr(LaDateetHeure);
  // Label1.Caption = 27/06/22 12 : 27/06/2022 12:00:00
  LaDateetHeure := StrToDate('27/06/2022');
  Label1.Caption := '27/06/2022 13:24:56 : '+DateTimeToStr(LaDate);
  // Label1.Caption = 27/06/2022 13:24:56 : 27/06/2022 13:24:56
end;


StrToFloat :

StrToFloat : Convertir chaîne en valeur à virgule flottante.

function StrToFloat(const S: string): Extended;
function StrToFloat(const S: string; const AFormatSettings: TFormatSettings): Extended;
EXEMPLE :
procedure TForm1.Button1Click(Sender: TObject);
var
  ChaineValue : string;
  floatValue   : Extended;
 begin
  // chaîne source contenant une représentation numérique
  ChaineValue := '12345,6789';
 
  // Convertit la virgule en point
  floatValue  := StrToFloat(ChaineValue);
  // floatValue = 12345.6789
 
 Label1.Caption := FloatToStr(floatValue);
  // Label1.Caption = 12345,6789
end;


StrToInt :

StrToInt : Convertir en nombre une chaîne qui représente un entier (décimal ou hexadécimal).

function StrToInt(const S: string): Integer;
EXEMPLE :
procedure TForm1.Button1Click(Sender: TObject);
var
  A, B, C, D, E, F : Integer;
begin
  A := 32;
  B := StrToInt('100');
  C := StrToInt('  -12');
  D := StrToInt('$1E');
  E := StrToInt('-0x1E');
  F := A + B + C + D + E;

  ShowMessage('A : '+IntToStr(A)); // Renvoie A : 32
  ShowMessage('B : '+IntToStr(B)); // Renvoie B : 100
  ShowMessage('C : '+IntToStr(C)); // Renvoie C : -12
  ShowMessage('D : '+IntToStr(D)); // Renvoie D : 30
  ShowMessage('E : '+IntToStr(E)); // Renvoie E : -30
  ShowMessage('F : '+IntToStr(F)); // Renvoie F : 120
end;


StrToInt64 :

StrToInt64 : Convertir une chaîne qui représente un entier (décimal ou hexadécimal) en Int64.

function StrToInt64(const S: string): Int64;
EXEMPLE :
procedure TForm1.Button1Click(Sender: TObject);
var
  A, B, C, D, E, F : Int64;
begin
  A := 32;
  B := StrToInt64('100');
  C := StrToInt64('  -12');
  D := StrToInt64('$1E');
  E := StrToInt64('-0x1E');
  F := A + B + C + D + E;

  ShowMessage('A : '+IntToStr(A)); // Renvoie A : 32
  ShowMessage('B : '+IntToStr(B)); // Renvoie B : 100
  ShowMessage('C : '+IntToStr(C)); // Renvoie C : -12
  ShowMessage('D : '+IntToStr(D)); // Renvoie D : 30
  ShowMessage('E : '+IntToStr(E)); // Renvoie E : -30
  ShowMessage('F : '+IntToStr(F)); // Renvoie F : 120
end;


StrToInt64Def :

StrToInt64Def : Convertit en nombre une chaîne qui représente un entier (décimal ou hexadécimal).

function StrToInt64Def(const S: string; const Default: Int64): Int64;
EXEMPLE :
procedure TForm1.Button1Click(Sender: TObject);
var
  A, B, C, D, E, F : Int64;
begin
  A := 32;
  B := StrToInt64Def('100', 0);
  C := StrToInt64Def('  -12', 0);
  D := StrToInt64Def('$1E', 0);
  E := StrToInt64Def('-0x1E', 0);
  F := A + B + C + D + E;

  ShowMessage('A : '+IntToStr(A)); // Renvoie A : 32
  ShowMessage('B : '+IntToStr(B)); // Renvoie B : 100
  ShowMessage('C : '+IntToStr(C)); // Renvoie C : -12
  ShowMessage('D : '+IntToStr(D)); // Renvoie D : 30
  ShowMessage('E : '+IntToStr(E)); // Renvoie E : -30
  ShowMessage('F : '+IntToStr(F)); // Renvoie F : 120
end;


StrToIntDef :

StrToIntDef : Convertir une chaîne qui représente un entier (décimal ou hexadécimal) en Integer.

function StrToIntDef(const S: string; Default: Integer): Integer;
EXEMPLE :
procedure TForm1.Button1Click(Sender: TObject);
var
  A, B, C, D, E, F : Integer;
begin
  A := 32;
  B := StrToIntDef('100', 0);
  C := StrToIntDef('  -12', 0);
  D := StrToIntDef('$1E', 0);
  E := StrToIntDef('-0x1E', 0);
  F := A + B + C + D + E;

  ShowMessage('A : '+IntToStr(A)); // Renvoie A : 32
  ShowMessage('B : '+IntToStr(B)); // Renvoie B : 100
  ShowMessage('C : '+IntToStr(C)); // Renvoie C : -12
  ShowMessage('D : '+IntToStr(D)); // Renvoie D : 30
  ShowMessage('E : '+IntToStr(E)); // Renvoie E : -30
  ShowMessage('F : '+IntToStr(F)); // Renvoie F : 120
end;


StrToTime :

StrToTime : Convertir une chaîne qui spécifie une heure. Si S ne contient pas une heure valide, StrToTime déclenche une exception EConvertError.

function StrToTime(const S: string): TDateTime;
function StrToTime(const S: string; const AFormatSettings: TFormatSettings): TDateTime;
EXEMPLE :
procedure TForm1.Button1Click(Sender: TObject);
 var
  Heure : TDateTime;
begin
  Heure := StrToTime('5PM');
  Label1.Caption := '5PM : '+TimeToStr(Heure);
  //Label1.Caption = 5PM : 17:00:00
  Heure := StrToTime('5AM');
  Label1.Caption := '5AM : '+TimeToStr(Heure);
  //Label1.Caption = 5AM : 05:00:00
  Heure := StrToTime('17');
  Label1.Caption := '17 : '+TimeToStr(Heure);
  //Label1.Caption = 17 : 17:00:00
  Heure := StrToTime('14:25');
  Label1.Caption := '14:25 : '+TimeToStr(Heure);
  //Label1.Caption = 14:25 : 14:25:00
  Heure := StrToTime('14:25:45');
  Label1.Caption := '14:25:45 : '+TimeToStr(Heure);
  //Label1.Caption = 14:25:45 : 14:25:45
end;


Val :

Val : Convertir en nombre une chaîne qui représente un entier (décimal ou hexadécimal). Si la chaîne n'est pas valide, l'indice du caractère erroné est stocké dans Code ; sinon, Code est mis à zéro.

procedure Val(S: String; var V; var Code: Integer);
EXEMPLE :
procedure TForm1.Button1Click(Sender: TObject);
var
  Entier, Code: Integer;
  NombreVirgule : Extended;
  MaChaine : string;
begin
MaChaine := '12345.6789';
  // Convertir la chaîne en Extended
  Val(MaChaine, NombreVirgule, Code);
  { Affiche le résultat }
   Label1.Caption := FloatToStr(NombreVirgule); // 12345,6789
   Label2.Caption := 'Code = '+IntToStr(Code); // Code = 0

  MaChaine := '12345,6789';
  // Convertir la chaîne en Extended
  Val(MaChaine, NombreVirgule, Code);
  { Affiche le résultat }
   Label1.Caption := FloatToStr(NombreVirgule); // 12345
   Label2.Caption := 'Code = '+IntToStr(Code); // Code = 6

  MaChaine := '123456789';
  // Convertir la chaîne en Integer
  Val(MaChaine, Entier, Code);
  { Affiche le résultat }
   Label1.Caption := IntToStr(Entier); // 123456789
   Label2.Caption := 'Code = '+IntToStr(Code); // Code = 0

   MaChaine := 'abcd';
  // Convertir la chaîne en Integer
  Val(MaChaine, Entier, Code);
  { Affiche le résultat }
   Label1.Caption := IntToStr(Entier); // 0
   Label2.Caption := 'Code = '+IntToStr(Code); // Code = 1
 end;