Aller au contenu principal
Version: Suivant

String

String ( expression {; format {; addTime}} ) : Text
String ( expression ; base ) : Text

ParamètresTypeDescription
expressionExpressionExpression à convertir en chaîne (peut être de type Réel, Integer, Date, Heure, Alpha, Texte, Booléen, Undefined ou Null)
formatInteger, TextFormat d'affichage
addTimeTimeHeure à combiner si expression est une date
baseIntegerValeur comprise entre 2 et 36 qui représente la base si expression est un nombre
RésultatTextexpression convertie en chaîne alphanumérique
Historique
ReleaseModifications
21Prise en charge du paramètre base

Description

La commande String renvoie sous forme de chaîne alphanumérique l'expression numérique, date, heure, chaîne ou booléenne que vous avez passée dans le paramètre expression.

Si vous ne passez aucun paramètre, la chaîne est renvoyée avec le format par défaut approprié. Si vous passez le paramètre format, vous pouvez définir suivant vos besoins le formatage de la chaîne retournée.

Le paramètre optionnel addTime permet d'ajouter une heure à une date dans un format combiné. Il est utilisable uniquement lorsque le paramètre expression est une date (voir ci-dessous).

Le paramètre optionnel base ne peut être utilisé qu'avec une expression numérique, il renvoie le nombre dans la base spécifiée (voir ci-dessous).

Expressions numériques

Lorsque vous utilisez la commande String avec une expression numérique (Real, Integer, Long Integer), deux syntaxes sont disponibles :

  • String(number{;format})
  • String(number;base)
note

La fonction String n'est pas compatible avec les champs de type "Integer 64 bits" en mode compilé.

String(number{;format})

Si vous ne passez pas le paramètre optionnel format, la chaîne est retournée avec le format numérique par défaut.

Le format est spécifié de la même manière que pour un nombre saisi dans un formulaire. Vous pouvez également passer le nom d'un style personnalisé dans format. Le nom du style personnalisé doit être précédé du caractère |. Voici quelques exemples :

ExempleRésultatCommentaires
String(2^15)"32768"Format défaut
String(2^15;"###,##0 Inhabitants")"32,768 Inhabitants"
String(1/3;"##0.00000")"0.33333"
String(1/3)"0.3333333333333"Format défaut(*)
String(Arctan(1)*4)"3.14159265359"Format défaut(*)
String(Arctan(1)*4;"##0.00")"3.14"
String(-1;"&x")"0xFFFFFFFF"
String(-1;"&$")"$FFFFFFFF"
String(0 ?+ 7;"&x")"0x0080"
String(0 ?+ 7;"&$")"$80"
String(0 ?+ 14;"&x")"0x4000"
String(0 ?+ 14;"&$")"$4000"
String(50.3;"&xml")"50.3"Toujours "." comme séparateur décimal
String(Num(1=1);"True;;False")"True"
String(Num(1=2);"True;;False")"False"
String(Log(-1))"""Not a number"
String(1/0)"INF"Nombre infini positif
String(-1/0)"-INF"Nombre infini négatif

(*) L'algorithme de conversion des valeurs réelles en texte est basé sur 13 chiffres significatifs, voir SET REAL COMPARISON LEVEL.

String(number;base)

L'utilisation d'un paramètre base (Integer) déclenche un mode spécifique dans lequel vous passez la base (radix) du nombre à retourner. Cette syntaxe permet notamment de convertir des nombres en chaînes hexadécimales.

Dans le paramètre base, passez la base dans laquelle est exprimée le nombre dans expression. Vous pouvez passer n'importe quelle valeur entière comprise entre 2 et 36.

Si vous passez 0 dans base, la commande détermine la base en fonction de la valeur de expression. Si expression commence par "0x", la base 16 est utilisée. Sinon, la base 10 est utilisée.

info
  • Cette syntaxe suit strictement la spécification EcmaScript de toString concernant la gestion du radix.
  • L'utilisation de cette syntaxe avec base=10 ne donnera pas exactement les mêmes résultats que l'utilisation de la syntaxe sans le paramètre base. Par exemple, si la valeur numérique spécifiée n'est pas un nombre, la chaîne "Nan" est renvoyée.
ExempleRésultatCommentaires
String(10;2)"1010"chaîne binaire
String(-10;2)"-1010"chaîne binaire (négative)
String(254;16)"fe"chaîne hexadécimale
String(-16523461; 16)"-fc20c5"chaîne hexadécimale (négative)
String(Log(-1); 10)"NaN""Not a number"
String(1/0; 10)"NaN""Not a number"
String(-1/0; 10)"NaN""Not a number"
note

Si la valeur du nombre spécifié est négative, le signe est conservé. C'est le cas même si la base est 2 ; la chaîne renvoyée est > N, la représentation binaire positive de la valeur du nombre précédée du signe -.

Expressions de type Date

Si expression est de type Date et si vous omettez le paramètre format, la chaîne est renvoyée en utilisant le format par défaut spécifié dans le système.

Sinon, dans le paramètre format, vous pouvez passer :

  • soit un format prédéfini disponible via les constantes suivantes du thème Formats d'affichage des dates (valeur longint) :
ConstanteValeurCommentaire
Blank if null date100À ajouter à la constante format. Indique que dans le cas d'une valeur nulle, 4D doit retourner une chaîne vide au lieu de zéros
Date RFC 112310Fri, 10 Sep 2010 13:07:20 GMT (voir Notes)
Internal date abbreviated629 déc 2006
Internal date long529 décembre 2006
Internal date short729/12/2006
Internal date short special406/12/06 (mais 06/12/1896 ou 06/12/2096)
ISO Date82006-12-29T00:00:00 (voir Notes)
ISO Date GMT92010-09-13T16:11:53Z (voir Notes)
System date abbreviated2mer. 25 déc. 2006
System date long3mercredi 6 décembre 2006
System date short129/12/2006

Exemples :

 $vsResult:=String(!2023-11-27!) //"27//11/2023"  
 $vsResult:=String(!2023-11-27!;Internal date long) // "November 27, 2023"
 $vsResult:=String(!2023-11-27!;ISO Date GMT) // "2023-11-26T23:00:00Z" in French timezone
 $vsResult:=String(!2023-11-27!;"EEEE d MMMM y GGGG") //"lundi 27 novembre 2023 après Jésus-Christ"  
 $vsResult:=String(!2023-11-27!;"E dd/MM/yyyy zzzz") //"lun. 27/11/2023 heure normale d’Europe centrale" timezone FR
note

Les formats peuvent varier en fonction des paramètres du système.

Paramètre addTime

Lors du traitement des expressions de type Date, vous pouvez également passer une heure dans le paramètre addTime. Ce paramètre vous permet de combiner une date et une heure afin de générer des horodatages conformes aux normes en vigueur (constantes ISO Date GMT et Date RFC 1123). Ces formats sont particulièrement utiles dans le contexte des traitements xml et Web. Le paramètre addTime ne peut être utilisé que lorsque le paramètre expression est une date.

Ce paramètre peut être utilisé avec des formats de date prédéfinis ou basés sur des motifs. Exemples :

 $dateTime:=String(!2010-09-09!;ISO date GMT;Current time) //"2010-09-09T15:58:44Z"
 $dateTime2:=String(!2023-11-27!;"E dd/MM/yyyy 'at' hh:mm aa O";?11:15:00?) //"lun. 27/11/2023 at 11:15 AM UTC+1"

Notes sur les formats combinés date/heure

  • Le format ISO Date GMT correspond à la norme ISO8601, contenant une date et une heure exprimées par rapport au fuseau horaire (GMT).
 $mydate:=String(Current date;ISO Date GMT;Current time) // retourne par exemple 2010-09-13T16:11:53Z  

A noter le caractère "Z" final qui indique le format GMT.
Si vous ne passez pas le paramètre addTime, la commande renvoie la date à minuit (heure locale) exprimée en heure GMT, ce qui peut entraîner un décalage en fonction du fuseau horaire local :

 $mydate:=String(!13/09/2010!;ISO Date GMT) // returns 2010-09-12T22:00:00Z en France  
  • Le format ISO Date est semblable au format ISO Date GMT, à la différence près qu'il exprime la date et l'heure sans tenir compte de la zone de fuseau horaire. A noter que ce format n'étant pas conforme à la norme ISO8601, son utilisation est à réserver à des usages très spécifiques.
 $mydate:=String(!13/09/2010!;ISO Date) // retourne 2010-09-13T00:00:00 quel que soit le fuseau horaire  
 $mydate:=String(Current date;ISO Date;Current time) // retourne 2010-09-13T18:11:53
  • Le format Date RFC 1123 formate une combinaison date/heure selon la norme définie par les RFC 822 et 1123. Ce format est nécessaire par exemple pour fixer la date d'expiration des cookies dans un en-tête HTTP.
 $mydate:=String(Current date;Date RFC 1123;Current time) // retourne par exemple Fri, 10 Sep 2010 13:07:20 GMT  

L'heure est exprimée en tenant compte de la zone de fuseau horaire (heure GMT). Si vous passez uniquement une date, la commande retourne la date à minuit heure locale exprimée en heure GMT, ce qui peut entraîner un décalage :

 $mydate:=String(!2010-09-09!;Date RFC 1123) // retourne Wed, 08 Sep 2010 22:00:00 GMT  

Expressions de type Heure

Si expression est de type Heure, la chaîne est retournée dans le format par défaut hh:mm:ss.

Sinon, dans le paramètre format, vous pouvez passer :

  • soit un format prédéfini disponible via les constantes suivantes du thème Formats d'affichage des heures (valeur longint) :
ConstanteValeurCommentaire
Blank if null time100À ajouter à la constante format. Indique que dans le cas d'une valeur nulle, 4D doit retourner une chaîne vide au lieu de zéros
HH MM201:02
HH MM AM PM51:02 du matin
HH MM SS101:02:03
Hour min41 heure 2 minutes
Hour min sec31 heure 2 minutes 3 secondes
ISO time80000-00-00T01:02:03. Correspond à la norme ISO8601, contenant en principe une date et une heure. Comme ce format ne prend pas en charge les dates/heures combinées, la partie date est remplie avec des 0. Ce format exprime l'heure locale.
Min sec762 minutes 3 secondes
ms s662:03
System time long111:02:03 AM HNEC (Mac uniquement)
System time long abbreviated101•02•03 AM (Mac uniquement)
System time short901:02:03

Exemples :

 $vsResult:=String(?17:30:45?;HH MM AM PM) //"5:30 PM"  
 $vsResult:=String(?17:30:45?;Hour Min Sec) //"17 hours 30 minutes 45 seconds"
 $vsResult:=String(?17:30:45?;"hh:mm aa O") //"05:30 PM GMT+1"  
 $vsResult:=String(?17:30:45?;"'It is' K a") //"It is 5 PM"

Expressions de type Chaîne

Si expression est de type Alpha ou Texte, la commande renvoie la même valeur que celle passée en paramètre. Ce fonctionnement est utile notamment dans le cadre d’une programmation générique utilisant des pointeurs.
Dans ce cas, le paramètre format, s'il est passé, est ignoré.

Expressions de type Booléen

Si expression est de type Booléen, la commande retourne la chaîne “Vrai” ou “Faux” dans la langue de l’application (“True” ou “False” dans une version anglaise de 4D).
Dans ce cas, le paramètre format, s'il est passé, est ignoré.

Expressions indéfinies

Si expression est évaluée à Undefined, la commande renvoie une chaîne vide. Ce fonctionnement est utile lorsque le résultat d'une expression (par exemple, un attribut d'objet) doit être une chaîne de caractères, même si elle peut être indéfinie.

Expressions nulles

Si expression est évaluée à Null, la commande renvoie la chaîne "null". Ce fonctionnement est utile lorsque le résultat d'une expression (par exemple, un attribut d'objet) doit être une chaîne de caractères, même si elle peut être nulle.

Voir également

Bool
Date
Num
Time string
Timestamp

Propriétés

Numéro de commande10
Thread safe