Saltar para o conteúdo principal
Versão: Próximo

String

String ( expressao {; formato {; horaComb}} ) : Text

ParâmetroTipoDescrição
expressaoExpressionExpressão para qual vai retornar o formato string (pode ser um Real, Inteiro, Inteiro longo, Data, string hora, texto ou booleano)
formatoInteger, TextFormato exibiçao
horaCombTimeHora a combinar se a expressão for uma data
ResultadoTextFormato string da expressão

Description

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:

ExemploResultadoComentá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.

ConstanteTipoValorComentário
Blank if null dateInteiro longo100Para ser adicionado à constante de formato. Indica que, no caso de valor null, 4D deve retornar uma string vazia ao invés de zeros.
Date RFC 1123Inteiro longo10
Internal date abbreviatedInteiro longo6
Internal date longInteiro longo5
Internal date shortInteiro longo7
Internal date short specialInteiro longo4
ISO DateInteiro longo82006-12-29T00:00:00
ISO Date GMTInteiro longo92010-09-13T16:11:53Z
System date abbreviatedInteiro longo2
System date longInteiro longo3
System date shortInteiro longo1

Nota: Formatos podem variar dependendo das configurações do sistema.

Estes são alguns exemplos de formatos simples (asumindo que a data atual é

2/29/2006): $vsResult:=String(Current date) //$vsResult toma el valor "12/29/06"
 $vsResult:=String(Current date;Internal date long) // $vsResult toma el valor "December 29, 2006"
 $vsResult:=String(Current date;ISO Date GMT) // $vsResult toma el valor "2009-03-04T23:00:00"

//``

**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.
```4d
 $minhadata:=String(Current date;ISO Date) // devolve por exemplo 2010-09-13T00:00:00
 $minhadata:=String(Current date;ISO Date;Current time) // devolve 2010-09-13T18:11:53
  • 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) // retorna 2010-09-13T16:11:53Z  

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) //devolve, por exemplo Fri, 10 Sep 2010 13:07:20 GMT  

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) // devolve Thu, 09 Sep 2010 22:00:00 GMT  

Expressões de tipo Hora

Se 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 "Formatos de saída de hora"):

ConstanteTipoValorComentário
Blank if null timeInteiro longo100
HH MMInteiro longo2
HH MM AM PMInteiro longo5
HH MM SSInteiro longo1
Hour minInteiro longo4
Hour min secInteiro longo3
ISO timeInteiro longo80000-00-00T01:02:03. Corresponde ao padrão ISO8601 e contém, em teoria, uma data e uma hora. Já que o formato não é compatível com datas/horas, a parte data é preenchida com 0s. Este formato expressa a hora local.
Min secInteiro longo7
MM SSInteiro longo6
System time longInteiro longo11
System time long abbreviatedInteiro longo10
System time shortInteiro longo9

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 toma o valor "17:30:45"
 $vsResult:=String(Current time;Hour Min Sec) // $vsResult toma o valor "17 horas 30 minutos 45 segundos"

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.

Expressões indefinidas
Se a expressão é avaliada como indefinida, o comando devolve uma string vazia. Isso é útil quando se espera que o resultado de uma expressão (por exemplo, um atributo objeto) seja uma string, mesmo se puder ser indefinido.

Expressões Null
Se a expressão for avaliada como Null, o comando devolve a string "null". Isto é útil quando se esperar que o resultado de uma expressão (por exemplo, um atributo objeto) seja uma string, mesmo se puder ser null.

Ver também

Bool
Date
Num
Time string
Timestamp