O comando String devolve em forma de cadeia alfanumérica a expressão de tipo numérica, Data, Hora, cadeia ou Booleana que se passa em expressão.
Se não passar o parâmetro opcional formato, a string é devolvida no formato como padrão do tipo de dados correspondente. Se passa formato, pode definir o formato da string resultante.
O parâmetro opcional horaComb adiciona uma hora a uma data em um formato combinado. Apenas pode ser utilizado quando o parâmetro expressao for uma data (ver abaixo).
Expressões numéricas
Se expressao for uma expressão numérica (Real, Inteiro, Inteiro longo), pode passar o formato da string opcional. Estes são alguns exemplos:
Exemplo | Resultado | Comentários |
String(2^15) | "32768" | Formato por padrão |
String(2^15;"###,##0 habitantes") | "32,768 habitantes" |
String(1/3;"##0.00000") | "0.33333" |
String(1/3) | "0.3333333333333330000" | Formato por padrão(*) |
String(Arctan(1)*4) | "3.141592653589790000" | Formato por padrão(*) |
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" | Sempre "." como um separador decimal |
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 |
(*) A partir de 4D v14 R3, o algoritmo para converter valores reais para texto é baseado em 13 dígitos significativos (ao contrários dos 15 dígitos de versões anteriores).
O formato é especificado da mesma forma que para um campo numérico em um formulário. Para maior informação sobre formatos numéricos, consulte a seção
Formatos de saída do manual de Desenho de 4D. Igualmente pode passar o nome de um estilo personalizado em formato. O nome do estilo personalizado deve estar precedido pelo caractere “
|”.
Nota: a função String não é compatível com campos de tipo "Inteiro 64 bits" em modo compilado.
Expressões de tipo Data Se expressao for de tipo Data, a string é devolvida no formato como padrão definido no sistema.
No parâmetro formato, pode passar uma das constantes descritas abaixo (tema Formatos de saída de datas):
Neste caso, também pode passar uma hora no parâmetro
Horacomb. Este parâmetro lhe permite combinar uma data e uma hora com o objetivo de gerar marcadores de tempo de acordo com as normas em vigor (constantes
ISO Date,
ISO Date GMT e
Date RFC 1123). Estes formatos são particularmente úteis no contexto dos processos XML e Web. O parâmetro
horaComb apenas é utilizado quando o parâmetro
expressao for uma data.
Constante |
Tipo |
Valor |
Comentário |
Blank if null date |
Inteiro longo |
100 |
"" ao invés de 0 |
Date RFC 1123 |
Inteiro longo |
10 |
|
Internal date abbreviated |
Inteiro longo |
6 |
|
Internal date long |
Inteiro longo |
5 |
|
Internal date short |
Inteiro longo |
7 |
|
Internal date short special |
Inteiro longo |
4 |
|
ISO Date |
Inteiro longo |
8 |
2006-12-29T00:00:00 (obsoleto) |
ISO Date GMT |
Inteiro longo |
9 |
2010-09-13T16:11:53Z |
System date abbreviated |
Inteiro longo |
2 |
|
System date long |
Inteiro longo |
3 |
|
System date short |
Inteiro longo |
1 |
|
Nota: Formatos podem variar dependendo das configurações do sistema.
Estes são alguns exemplos de formatos simples (asumindo que a data atual é 29/12/2009):
$vsResult:=String(Current date)
$vsResult:=String(Current date;Internal date long)
$vsResult:=String(Current date;ISO Date)
Notas para os formatos combinados data/hora:
- O formato ISO Date corresponde à norma ISO8601. Este formato contém uma data e uma hora. Por exemplo, a data de 31 de maio de 2006 à 1:20 p.m. se escreve 2006-05-31T13:20:00. Se não passar o parâmetro adHOra, a parte hora é preenchida com 0 (ver exemplo). Este formato expressa a data e hora local.
$minhadata:=String(Current date;ISO Date)
$minhadata:=String(Current date;ISO Date;Current time)
- O formato ISO Date GMT é similar ao formato ISO Date, exceto que expressa a data e a hora com relação a zona do fuso horário (hora GMT).
$minhadata:=String(Current date;ISO Date GMT;Current time)
Note que o caractere "Z" ao final indica o formato GMT.
Se apenas passa uma data, o comando devolve a data à meia noite (hora local) expressa em hora GMT o qual pode fazer com que a data se mova para frente ou para trás, dependendo da zona horária local: - O formato Date RFC 1123 permite formatar um conjunto data/hora seguindo a norma definida pelos RFC 822 e 1123. Este formato é necessário, por exemplo, para fixar a data de vencimento das cookies em um cabeçalho HTTP.
$minhadata:=String(Current date;Date RFC 1123;Current time)
A hora expressa considera a hora do fuso horário (zona GMT). Se passar uma data, o comando retorna a data com a hora da meia noite (hora loca) expressa em hora GMT o qual pode fazer com que a data se mova para frente ou para trás, dependendo da zona horária local:
$minhadata:=String(Current date;Date RFC 1123)
Expressões de tipo HoraSe
expressao for do tipo Hora, a string é devolvida utilizando o formato como padrão
HH:MM:SS. Pode passar no parâmetro
formato uma das seguintes constantes do tema "
Time Display Formats"):
Constante |
Tipo |
Valor |
Blank if null time |
Inteiro longo |
100 |
HH MM |
Inteiro longo |
2 |
HH MM AM PM |
Inteiro longo |
5 |
HH MM SS |
Inteiro longo |
1 |
Hour min |
Inteiro longo |
4 |
Hour min sec |
Inteiro longo |
3 |
ISO time |
Inteiro longo |
8 |
Min sec |
Inteiro longo |
7 |
MM SS |
Inteiro longo |
6 |
System time long |
Inteiro longo |
11 |
System time long abbreviated |
Inteiro longo |
10 |
System time short |
Inteiro longo |
9 |
Notas:
- O formato ISO Date Time corresponde à norma ISO8601. Este formato contém uma data e uma hora. Por exemplo, a data de 31 de maio de 2006 à 1:20 p.m. é escrita 2006-05-31T13:20:00. Isso se utiliza para os processos XML e com serviços Web. 4D não permite armazenar uma data e hora em um campo apenas. Entretanto, é possível administrar as datas neste formato utilizando o comando String
- A constante Blank if null deve ser adicionada ao formato; indica que em caso de um valor nulo 4D deve devolver uma string vazia ao invés de zeros.
Estes exemplos assumem que a hora atual 5:30 PM e 45 segundos:
$vsResult:=String(Current time)
$vsResult:=String(Current time;Hour Min Sec)
Expressões de tipo string
Se expressao for de tipo Alfa ou Texto, o comando devolve o mesmo valor que se passa no parâmetro. Isso pode ser útil particularmente em programação genérica utilizando ponteiros.
Neste caso, se for passado, o parâmetro formato será ignorado.
Expressões de tipo Booleano
Se expressao for de tipo Booleano, o comando devolve a string “True” ou “False” na linguagem da aplicação (por exemplo, “Vrai” ou “Faux” em uma versão francesa de 4D).
Neste caso se for passado, o parâmetro formato será ignorado.