Saltar al contenido principal
Versión: 20 R7 BETA

String

String ( expresion {; formato {; agregarHora}} ) : Text

ParámetroTipoDescripción
expresionExpressionExpresión a convertir en cadena (puede ser de tipo Real, Entero, Entero largo, Fecha, Hora, String, Texto, Booleana, Indefinido o Null)
formatoInteger, TextFormato de visualización
agregarTimeTimeHora a añadir si expresión es una fecha
ResultadoTextExpresión convertida en cadena alfanumérica

Descripción

El comando String devuelve en forma de cadena alfanumérica la expresión de tipo numérico, Fecha, Hora, cadena o Booleana que se pasa en expresion.

Si no pasa el parámetro opcional formato, la cadena se devuelve en el formato por defecto del tipo de datos correspondiente. Si pasa formato, puede definir el formato de la cadena resultante.

El parámetro opcional agregarHora añade una hora a una fecha en un formato combinado. Sólo puede utilizarse cuando el parámetro expresion es una fecha (ver a continuación).

Expresiones numéricas
Si expresion es una expresión numérica (Real, Entero, Entero largo), puede pasar el formato de la cadena opcional. Estos son algunos ejemplos:

EjemploResultadoComentarios
String(2^15)"32768"Formato por defecto
String(2^15;"###,##0 habitantes")"32,768 habitantes"
String(1/3;"##0.00000")"0.33333"
String(1/3)"0.3333333333333330000"Formato por defecto(*)
String(Arctan(1)*4)"3.141592653589790000"Formato por defecto(*)
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"Siempre "." como un separador decimal
String(Num(1=1);"True;;False")"True"
String(Num(1=1);"True;;False")"True"
String(Num(1=2);"True;;False")"False"
String(Log(-1))""Número indefinido
String(1/0)"INF"Número infinito positivo
String(-1/0)"-INF"Número infinito positivo

(*) El algoritmo de conversión de valores reales a texto está basado en 13 dígitos significativos.

El formato se especifica de la misma forma que para un campo numérico en un formulario. Para mayor información sobre formatos numéricos, consulte la sección Formatos de salida del manual de Diseño de 4D. Igualmente puede pasar el nombre de un estilo personalizado en formato. El nombre del estilo personalizado debe estar precedido por el carácter “|”.

Nota: la función String no es compatible con campos de tipo "Entero 64 bits" en modo compilado.

Expresiones de tipo Fecha
Si expresion es de tipo Fecha, la cadena se devuelve en el formato por defecto definido en el sistema.

De lo contrario, en el parámetro formato, puede pasar:

  • o un formato predefinido disponible a través de las siguientes constantes del tema Formatos de salida de fechas (valor longint):
ConstanteValorComentario
Blank if null date100A añadir a la constante de formato. Indica que en caso de valor null, 4D debe devolver una cadena vacía en lugar de ceros.
Date RFC 112310Fri, 10 Sep 2010 13:07:20 GMT
Internal date abbreviated629 dic, 2006
Internal date long529 diciembre 2006
Internal date short7
Internal date short special412/29/06 (pero 12/29/1896 o 12/29/2096)
ISO Date82006-12-29T00:00:00
ISO Date GMT92010-09-13T16:11:53Z
System date abbreviated2dom. 29 de 2006
System date long3domingo 29 diciembre 2006
System date short1

Ejemplos:

 $vsResult:=String(!2023-11-27!) //"11/27/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" en zona horaria de Francia
 $vsResult:=String(!2023-11-27!;"EEEE d MMMM y GGGG") //"Monday 27 November 2023 Anno Domini"  
 $vsResult:=String(!2023-11-27!;"E dd/MM/yyyy zzzz") //"Mon 27/11/2023 GMT+01:00" in French timezone

Nota: los formatos pueden variar dependiendo de la configuración del sistema.

Parámetro agregarHora

Al procesar expresiones de fecha, también puede pasar una hora en el parámetro agregarHora. Este parámetro permite combinar una fecha con una hora para generar marcas de tiempo conformes a las normas vigentes (constantes ISO Date GMT y Date RFC 1123). Estos formatos son especialmente útiles en el contexto del procesamiento xml y Web. El parámetro agregarHora sólo puede utilizarse cuando el parámetro expresion es una fecha.

Este parámetro puede utilizarse con formatos de fecha predefinidos o basados en patrones. Ejemplos:

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

Notas para los formatos combinados fecha/hora:

  • El formato ISO Date GMT corresponde a la norma ISO8601 estándar y contiene una fecha y una hora expresada con respecto a la zona horaria (GMT).
 $mydate:=String(Current date;ISO Date GMT;Current time) // devuelve por ejemplo, 2010-09-13T16:11:53Z en Francia  

Note que el caracter "Z" al final indica el formato GMT.
Si no pasa el parámetro addTime, el comando devuelve la fecha a la media noche (hora local) expresada en hora GMT lo cual puede causar que la fecha se mueva hacia adelante o hacia atrás dependiendo de la zona horaria local:

 $mydate:=String(!13/09/2010!;ISO Date GMT) // devuelve 2010-09-12T22:00:00Z en Francia  
  • El formato ISO Date es similar al formato ISO Date GMT, excepto que expresa la fecha y la hora con respecto a la zona del huso horario. Note que como este formato no cumple con el estándar ISO8601, su uso deber reservarse a propósitos muy específicos.
 $mydate:=String(!13/09/2010!;ISO Date) // devuelve 2010-09-13T00:00:00 sin importar la zona horaria  
 $mydate:=String(Current date;ISO Date;Current time) // devuelve 2010-09-13T18:11:53
  • El formato Date RFC 1123 permite formatear un conjunto fecha/hora siguiendo la norma definida por los RFC 822 y 1123. Este formato es necesario por ejemplo para fijar la fecha de vencimiento de las cookies en un encabezado HTTP.
 $mydate:=String(Current date;Date RFC 1123;Current time) // devuelve, por ejemplo Fri, 10 Sep 2010 13:07:20 GMT  

La hora expresada tiene en cuenta la hora del huso horario (zona GMT). Si pasa una fecha, el comando devuelve la fecha a la media noche (hora loca) expresada en hora GMT lo que puede hacer que la fecha se mueva hacia adelante o hacia atrás dependiendo de la zona horaria local:

 $mydate:=String(Current date;Date RFC 1123) // devuelve Thu, 09 Sep 2010 22:00:00 GMT  

Expresiones de tipo Hora
Si expresion es de tipo Hora, la cadena se devuelve utilizando el formato por defecto HH:MM:SS. Si es de otra forma, en el parámetro formato, puede pasar:

  • o un formato predefinido disponible a través de las siguientes constantes del tema Formatos de salida de hora (valor longint):
ConstanteValorComentario
Blank if null time100"" en lugar de 0
HH MM2
HH MM AM PM5
HH MM SS1
Hour min41 hora 2 minutos
Hour min sec31 hora 2 minutos 3 segundos
ISO time80000-00-00T01:02:03. Corresponde a la norma ISO8601 y contiene, en teoría, una fecha y una hora. Como este formato no soporta fechas/horas combinadas, la parte de la fecha se rellena con 0s. Este formato expresa la hora local.
Min sec762 minutos 3 segundos
MM SS6
System time long111:02:03 AM HNEC (Mac únicamente)
System time long abbreviated101•02•03 AM (Mac únicamente)
System time short9

Ejemplos:

 $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"

Expresiones de tipo cadena
Si expresion es de tipo Alfa o Texto, el comando devuelve el mismo valor que se pasa en el parámetro. Esto puede ser útil particularmente en programación genérica utilizando punteros.
En este caso, si se pasa el parámetro formato se ignora.

Expresiones de tipo Booleano
Si expresion es de tipo Booleano, el comando devuelve la cadena “True” o “False” en el lenguaje de la aplicación (por ejemplo, “Vrai” o “Faux” en una versión francesa de 4D).
En este caso si se pasa el parámetro formato, se ignora.

Expresiones indefinidas
Si expresion se evalúa como indefinida, el comando devuelve una cadena vacía. Esto es útil cuando se espera que el resultado de una expresión (por ejemplo, un atributo objeto) sea una cadena, incluso si puede ser indefinido.

Expresiones Null

Si expresion se evalúa como Null, el comando devuelve la cadena "null". Esto es útil cuando se espera que el resultado de una expresión (por ejemplo, un atributo objeto) sea una cadena, incluso si puede ser null.

Ver también

Bool
Date
Num
Time string
Timestamp

Propiedades

Número de comando10
Hilo seguro