Si vous ne souhaitez pas imprimer directement mais assembler un nombre quelconque de variables en une chaîne complète, Pascal propose trois méthodes principales de mise en œuvre :
Concaténation via des fonctions de conversion dédiées
***ToStr + concaténation chaîne avec +
Convertissez chaque type de données séparément à l’aide de fonctions de conversion dédiées, puis assemblez les chaînes avec l’opérateur + :
uses SysUtils;
var
MyInt: Integer;
MyStr: string;
begin
MyInt := 123;
MyStr := 'My int number is ' + IntToStr(MyInt) + ', and the value of Pi is ' + FloatToStr(Pi);
end;Langage du code : JavaScript (javascript)
Fonctions auxiliaires courantes (toutes situées dans l’unité SysUtils) :
- Nombre vers chaîne :
IntToStr,FloatToStr,FormatFloat(format flottant personnalisable) - Chaîne vers valeur numérique :
StrToInt,StrToIntDef,StrToFloat
Exemple entièrement exécutable
{$ifdef FPC} {$mode objfpc}{$H+}{$J-} {$endif}
{$ifdef MSWINDOWS} {$apptype CONSOLE} {$endif}
uses SysUtils;
var
MyInt: Integer;
MyStr: string;
begin
MyInt := 180;
MyStr := 'My int number is ' + IntToStr(MyInt) + ', and the value of Pi is ' + FloatToStr(Pi);
WriteLn(MyStr);
end.Langage du code : PHP (php)

Avantages
- Extrêmement flexible ; des fonctions spécifiques couvrent la plupart des types : entiers, flottants, dates, etc. ;
- Les fonctions de conversion inverse sont complètes et pratiques pour analyser les chaînes saisies par l’utilisateur.
Inconvénients
Lorsqu’il y a beaucoup de variables, les concaténations à l’aide de multiples opérateurs + produisent un code verbeux et difficile à lire.
Fonction Format
Format (similaire à sprintf du langage C)
Syntaxe de base
uses SysUtils;
var
Res: string;
MyInt: Integer;
MyFloat: Double;
MyString: string;
begin
Res := Format('%d %.4f %s', [MyInt, MyFloat, MyString]);
end;Langage du code : JavaScript (javascript)
%d: marqueur de position pour entier ;%.4f: nombre flottant avec quatre décimales ;%s: marqueur de position pour chaîne- Le second paramètre est un tableau constant qui remplit successivement les marqueurs de position
Exemple complet
{$ifdef FPC} {$mode objfpc}{$H+}{$J-} {$endif}
{$ifdef MSWINDOWS} {$apptype CONSOLE} {$endif}
uses SysUtils;
var
Res: string;
MyInt: Integer;
MyFloat: Double;
MyString: string;
begin
// set value
MyInt := 169;
MyFloat := 0.618;
MyString := 'foxdevelop.com';
Res := Format('%d %.4f %s', [MyInt, MyFloat, MyString]);
WriteLn(Res);
end.Langage du code : PHP (php)

Avantages
- Le modèle de format est séparé des données pour une structure claire ; pour la traduction multilingue du logiciel, seul le modèle de chaîne doit être modifié sans toucher à la liste des variables ;
- Aucune logique cachée du compilateur. Déclarez une fonction personnalisée avec des paramètres variables
array of constpour réutiliser cette logique de formatage et transmettre les paramètres àFormatpour traitement natif.
Inconvénients
Le compilateur ne vérifie pas la correspondance entre les marqueurs de position et les types des variables à la compilation ; un type incompatible lève une exception de conversion EConvertError à l’exécution (aucun crash d’accès mémoire ne survient).
WriteStr
Stocker la sortie de Write dans une variable chaîne
Rôle : se comporte quasiment identiquement à Write/WriteLn, mais au lieu d’imprimer sur la console, il stocke le résultat dans la première variable chaîne cible :
var S: string;
begin
WriteStr(S, 'Pi value: ', Pi:1:4);
end;Langage du code : JavaScript (javascript)
Exemple complet
{$ifdef FPC} {$mode objfpc}{$H+}{$J-} {$endif}
{$ifdef MSWINDOWS} {$apptype CONSOLE} {$endif}
uses SysUtils;
var S: string;
begin
WriteStr(S, 'Pi value: ', Pi:1:4);
WriteLn(S);
end.Langage du code : PHP (php)
