Foi adicionado o suporte para variáveis de recurso. Sua
utilização pode facilitar muito a escrita de alguns programas. Por
exemplo, você pode escrever um código em OpenCL num arquivo CL separado
e, em seguida, incluir esse arquivo - como uma cadeia de caracteres -
nos recursos de seu programa MQL5. Anteriormente, em vez disso, era
necessário descrever esse código como uma variável de cadeia grande.
Declaração da variável de recurso
#resource caminho_para_o_arquivo_do_recurso as tipo_de_variável_de_recurso nome_de_variável_de_recurso
Características
- Para arquivos de sequência de caracteres, a codificação de BOM
(cabeçalho) é detectada automaticamente. Se não houver nenhum BOM, a
codificação será determinada pelo conteúdo. São suportadas codificações
ANSI, UTF-8 e UTF-16. Todas as cadeias de caracteres são convertidas
para Unicode.
- Os dados deste recurso podem ser tratados por intermédio de
uma variável. O endereçamento automático via "::<resource name>"
não funciona.
- O tipo especial de variável de recurso bitmap informa ao
compilador que o recurso é uma representação gráfica. A variável de
recurso, neste caso, obtém o tipo uint.
- Ao usar uma imagem de 24 bits, para todos seu pixels de componente de canal-alfa, define-se como 255.
- Ao usar uma imagem de 32 bits, sem canal-alfa, para todos seu pixels de componente de canal-alfa, também é definido como 255.
- Após carregar uma imagem de 32 bits com canal-alfa não acontece nenhuma manipulação de pixels.
- A matriz-variável de recurso de tipo bitmap pode ter duas
dimensões. Neste caso, o tamanho da matriz será definido como
[altura_de_imagem][largura_de_imagem].
- No caso de uma matriz unidimensional, o número de elementos será definido como altura_de_imagem*largura_de_imagem.
- Se o tamanho do arquivo de recurso não é um múltiplo do
tamanho do elemento da matriz, em seguida, o resto dos dados é cortado.
Por exemplo, quando o tamanho do arquivo é 14 bytes, para a matriz int o
número de elementos será 3, e os restantes 2 bytes (14 - sizeof(int)*3)
serão descartados.
Exemplos de utilização
#resource "data.bin" as int ExtData[]
#resource "data.bin" as MqlRates ExtData[]
#resource "data.txt" as string ExtCode
#resource "data.txt" as string ExtCode[]
#resource "image.bmp" as bitmap ExtBitmap[]
#resource "image.bmp" as bitmap ExtBitmap2[][]