- Alert
- CheckPointer
- Comment
- CryptEncode
- CryptDecode
- DebugBreak
- ExpertRemove
- GetPointer
- GetTickCount
- GetTickCount64
- GetMicrosecondCount
- MessageBox
- PeriodSeconds
- PlaySound
- PrintFormat
- ResetLastError
- ResourceCreate
- ResourceFree
- ResourceReadImage
- ResourceSave
- SetReturnError
- SetUserError
- Sleep
- TerminalClose
- TesterHideIndicators
- TesterStatistics
- TesterStop
- TesterDeposit
- TesterWithdrawal
- TranslateKey
- ZeroMemory
PrintFormat
Formata e entra conjuntos de símbolos e valores no log do Expert Advisor em concordância com um formato predefinido.
void PrintFormat(
|
Parâmetros
format_string
[in] A string de formato consiste de símbolos simples, e se a string de formato é seguido por argumentos, ela também contém especificações de formato.
...
[in] Quaisquer valores de tipos simples separados por vírgula. Número total de parâmetros não pode exceder A 64, incluindo a string de formato.
Valor do Retorno
String.
Observação
A função Printformat() não funciona no durante a otimização no Testador de Estratégias.
O número, ordem e tipo dos parâmetros devem corresponder exatamente com o conjunto de qualificadores, caso contrário, o resultado do print é indefinido. Ao invés de PrintFormat(), você pode usar printf().
Se a string de formato for seguida por parâmetros, esta string deve conter especificações de formato que denotem o formato de saída destes parâmetros. Especificações de formato sempre começam com o sinal de percentual (%).
Uma string de formato é lida da esquerda para direita. Quando a primeira especificação de formato é encontrada (se houver alguma), o valor do primeiro parâmetro após a string de formato é transformado e impresso de acordo com a especificação predefinida. A segunda especificação de formato chama a transformação e impressão do segundo parâmetro, e assim por diante até a string de formato acabe.
A especificação de formato tem a seguinte forma:
%[flags][largura][.precisão][{h | l | ll | I32 | I64}]tipo
Cada campo da especificação de formato é tanto um símbolo simples, como um número denotando uma opção de formato simples. A especificação de formato mais simples contém somente o sinal de percentagem (%) e um símbolo definindo o tipo do parâmetro de saída (por exemplo, %s). Se você precisar imprimir o sinal de percentual na string de formato, use o especificação de formato %%.
flags
Flag |
Descrição |
Comportamento Default |
---|---|---|
(menos) |
Justificação a esquerda dentro da largura (width) predefinida |
Justificação a direita |
+ (mais) |
Imprime o sinal + ou - de valores de tipos com sinal |
O sinal somente é mostrada se o valor for negativo |
0 (zero) |
Zeros são adicionados antes de um valor impresso com a largura predefinida. Se o flag 0 for especificado com um formato inteiro (i, u, x, X, o, d) e a especificação de precisão for definida (por exemplo, %04.d), então 0 é ignorado. |
Nada é adicionado |
espaço |
Um espaço é exibido antes de um valor impresso, se ele for um valor com sinal e positivo |
Espaços não são inseridos |
# |
Se usado em conjunto com o formato o, x ou X, então antes do valor de saída 0, 0x ou 0X é adicionado respectivamente. |
Nada é adicionado |
|
Se usado em conjunto com o formato e, E, a ou A, o valor é sempre mostrado com um ponto decimal. |
Ponto decimal é mostrado somente se houver um parte fracionária não-zero. |
|
Se usado em conjunto com o formato g ou G, o flag define a presença de um ponto decimal no valor de saída e evita o truncamento de zeros à esquerda. O flag # é ignorado quando usado em conjunto com formatos c, d, i, u, s. |
Ponto decimal é mostrado somente se houver um parte fracionária não-zero. Zeros à esquerda são cortados. |
largura #
Um número decimal não negativo que define o número mínimo de símbolos de saída do valor formatado. Se o número de saída de símbolos é menor do que a largura especificada, o correspondente número de espaços é adicionado a partir da esquerda ou direita, dependendo do alinhamento (flag -). Se houver o flag zero (0), o número correspondente de zeros é adicionado antes do valor de saída. Se o número de saída de símbolos de saída é maior do que a largura especificada, o valor de saída não é cortado.
Se um asterisco (*) for especificado como width, um valor de tipo int deve ser indicado no lugar correspondente da lista de parâmetros passados. Ele será usado para especificar a largura do valor de saída.
precisão #
Um número decimal não negativo que define a precisão de saída - número de dígitos após o ponto decimal. Como diferença da especificação de largura, a especificação de precisão pode truncar a parte fracionário com ou sem arredondamento.
O uso da especificação de precisão é diferente para tipos de formato diferentes.
Tipos |
Descrição |
Comportamento Default |
---|---|---|
a, A |
Especificação de precisão define o número de dígitos após o ponto decimal. |
Precisão padrão 6. |
c, C |
Não usado |
|
d, i, u, o, x, X |
Define o número mínimo de dígitos de saída. Se o número de dígitos em um parâmetro correspondente for menor que esta precisão, zeros são adicionados a esquerda do valor de saída. O valor de saída não é cortado, se o número de dígitos de saída é maior do que a precisão apurada. |
Precisão padrão 1. |
e, E, f |
Define o número de dígitos de saída após o ponto decimal. O último dígito é arredondado. |
Precisão padrão 6. Se a definição de precisão for 0 ou a parte decimal estiver ausente, o ponto decimal não é exibido. |
g, G |
Define o número máximo de números significativos. |
6 números significativos são impressos. |
s, S |
Define o número de saída dos símbolos de uma string. Se o comprimento da string excede ao apurado, a string e cortada. |
Toda a string é a saída. |
h | l | ll | I32 | I64
Especificação de tamanhos dos dados, passados como parâmetro.
Tipo de Parâmetro |
Prefixo Usado |
Especificador Conjunto de Tipo |
---|---|---|
int |
l (letra minúscula L) |
d, i, o, x, or X |
uint |
l (letra minúscula L) |
o, u, x, or X |
long |
ll (duas letras minúsculas L) |
d, i, o, x, or X |
short |
h |
d, i, o, x, or X |
ushort |
h |
o, u, x, or X |
int |
I32 |
d, i, o, x, or X |
uint |
I32 |
o, u, x, or X |
long |
I64 |
d, i, o, x, or X |
ulong |
I64 |
o, u, x, or X |
tipo #
Especificador de tipo é o único campo obrigatório para a saída formatada.
Símbolo |
Tipo |
Formato de Saída |
---|---|---|
c |
int |
Símbolo de tipo short (Unicode) |
C |
int |
Símbolo de tipo char (ANSI) |
d |
int |
Inteiro decimal com sinal |
i |
int |
Inteiro decimal com sinal |
o |
int |
Inteiro octal sem sinal |
u |
int |
Inteiro decimal sem sinal |
x |
int |
Inteiro hexadecimal sem sinal, usando "abcdef" |
X |
int |
Inteiro hexadecimal sem sinal, usando "ABCDEF" |
e |
double |
Um valor real no formato [-] d.dddde[sinal] ddd, onde d - um dígito decimal, dddd - um ou mais dígitos decimais, ddd - um número de três dígitos que determina o tamanho do exponente, sinal - mais ou menos |
E |
double |
Semelhando ao formato de e, exceto que o sinal do expoente é impresso em letra maiúscula (E ao invés de e) |
f |
double |
Um valor real no format [-] dddd.dddd, onde dddd - um ou mais dígitos decimais. Número de dígitos exibidos depois do ponto decimal depende do tamanho do valor do número. Número de dígitos após o ponto decimal depende da precisão requerida. |
g |
double |
Uma saída de valor real no formato f ou edepende de qual saída é mais compacta. |
G |
double |
Uma saída de valor real no formato F ou Edepende de qual saída é mais compacta. |
a |
double |
Um número real no formato [−]0xh.hhhh p±dd, onde h.hhhh mantissa na forma de dígitos hexadecimais, usando "abcdef", dd - Um ou mais dígitos de expoente. Número de posições decimais é determinado pela especificação de precisão |
A |
double |
Um número real no formato [−]0xh.hhhh p±dd, onde h.hhhh mantissa na forma de dígitos hexadecimais, usando "abcdef", dd - Um ou mais dígitos de expoente. Número de posições decimais é determinado pela especificação de precisão |
s |
string |
Saída da string |
Ao invés de PrintFormat(), você pode usar printf().
Exemplo:
void OnStart() |
Também Veja