Erros, bugs, perguntas - página 327

 
mrProF:
Num relance, todo o ficheiro é escrito para str...
Adicionar a bandeira FILE_ANSI, uma vez que lê unicode por defeito:)
Além disso, terei 15 anos, pois há uma linha em branco no final.
De acordo com a documentação MQL5, a função FileReadString "lê uma string de ficheiro com a posição actual do ponteiro do ficheiro ... Ao ler a partir do ficheiro csv, a corda será lida da posição actual para o separador mais próximo ou para o sinal do fim da corda de texto". Por isso, discordo que "o ficheiro inteiro esteja escrito". Tentei usar FILE_ANSI, mas não funciona. Quanto à linha vazia no final: não compreendo bem, clarifique de que linha está a falar.
 
DenisR:
De acordo com a documentação da MQL5, a função FileReadString "lê uma cadeia a partir da posição actual do ponteiro do ficheiro... Ao ler a partir do ficheiro csv, a cadeia será lida da posição actual para o separador mais próximo ou para o sinal do fim da cadeia de texto". Por isso, discordo que "o ficheiro inteiro esteja escrito". Tentei usar FILE_ANSI, mas não funciona. Quanto ao fio vazio no final: não compreendo bem, clarifique de que fio está a falar.

É se encontrar uma vírgula correctamente, se a codificação não corresponder, pode não a ver.
Vou ver com debugger.
Copiei o seu código, adicionei a bandeira - está tudo bem.
 
E assim, aqui estão os resultados, como eu disse.
Sem ansiar lê abracadabra e sem ver vírgulas, voa até ao fim do ficheiro.
Com ansiedade, lê-se bem.
Ver anexos.
Arquivos anexados:
 
-Alexey-:
No MetaEditor, o botão "Lista de funções em ficheiro" abre a lista. Se o deslizar para baixo, termina em P, e não se move mais (o triângulo preto virado para baixo torna-se inactivo), embora existam classes à letra R. Por favor, conserte-o.

São necessários mais detalhes.

Construção, arquivo, resolução...

Acabou de o experimentar no ficheiro ChartObject.mqh - ele rola para cima e para baixo.

 
mrProF:
E assim, aqui estão os resultados, como eu disse.
Sem ansiar lê abracadabra e sem ver vírgulas, voa até ao fim do ficheiro.
Com ansiedade, lê-se bem.
Ver anexos.
De ansi I have it reading (5 505 1009), ou seja, i é agora 5 em vez de 0 por alguma razão, o tamanho do ficheiro é 505 como antes e FileTell é 1009 como antes. Em MT4 o mesmo guião diz (15 505 505).
 
alexvd:

São necessários mais detalhes.

Construção, arquivo, resolução...

Acabou de o experimentar no ficheiro ChartObject.mqh - ele rola para cima e para baixo.

Interesting:
E pelo menos o tamanho aproximado da lista o quê? Talvez haja um limite para o tamanho da lista...

-Aleksey-

Exactamente 100 linhas.


Interessante:

Experimentei uma das minhas bibliotecas (110 funções), mostra de 100 a 106 na lista (número diferente a toda a hora, mas não 110).

Construir por último, parece ser um problema com um número de filas superior a 100. ChartObject.mqh tem apenas 62 linhas na lista. Resolução 1680x1050. Windows7, o esquema de tipos de letra é ampliado.

 
DenisR:
De ansi I have it reading (5 505 1009), ou seja, i é agora 5 em vez de 0 por alguma razão, o tamanho do ficheiro é 505 como antes e FileTell é 1009 como antes. Em MT4 o mesmo guião diz (15 505 505).
Hmm, a minha é 155091009.


//+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                                                           mrProF |
//|                                                          http:// |
//+------------------------------------------------------------------+
#property copyright "mrProF"
#property link      "http://"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+


void OnStart()
  {int handle;
   ulong i, size;
   double _Ask, _Bid;
   string str;
      
   handle = FileOpen("test.csv",FILE_CSV|FILE_READ|FILE_ANSI,',');
   
   if (handle != INVALID_HANDLE)
     {
      size = FileSize(handle);
      
      for (i = 0; i < size; i++)
        {
         str = FileReadString(handle);
         _Ask = FileReadNumber(handle);
         _Bid = FileReadNumber(handle);
        
         if (FileIsEnding(handle))
           {
            Print(i," ",size," ",FileTell(handle));
            break;
           }
        }
     }   
      
   FileClose(handle);

   return;

  }
//+------------------------------------------------------------------+


Tente depurar linha a linha se souber como...

 
mrProF:
Hmm, eu tenho 155091009.



No início também tinha 15 505 1009, mas depois o terminal foi actualizado para a versão mais recente (408) e tornou-se 5 505 1009. Mas em qualquer caso, o sinal de fim de ficheiro não pode ser maior do que o tamanho do próprio ficheiro. Essa é a minha principal preocupação neste momento.
 
alexvd:

São necessários mais detalhes.

Construção, arquivo, resolução...

Acabou de o experimentar no ficheiro ChartObject.mqh - rola para cima e para baixo.

Constrói 404 e 408, Win XP Prof SP3, CPU 3.0 GHz e 3.0 Gb de RAM.

Otamanho da letra e outras configurações (excepto a cor) são padrão.

As acções são as seguintes:

1. Criar uma biblioteca ou qualquer outro módulo de programa;

2. Gerar um conjunto de procedimentos e funções que devem exceder 100. No meu caso, foi 110 (estava a gozar com a minha biblioteca de migração).

Mais especificamente, as funções eram 110, e o módulo saiu com o tamanho de cerca de 3310 linhas.

3. Compilação do módulo;

4. Estamos a tentar ver através da lista de funções.

Na lista, vi de 100 a 106 funções (com cada recompilação um número e composição de funções diferentes). No início foram exibidos os nomes de 106 funções, e depois o número começou a diminuir.

Ao mesmo tempo, todas as 110 funções nunca estiveram na lista.

PS

Outra coisa estranha - não sei quantas funções (mas definitivamente menos de 50) novas funções deixaram de aparecer na lista após a primeira compilação, tive de fazer duas ou três recompilações.

Proponho ou alterar a ordem de formação da lista, por exemplo para atribuir classes individuais sob a forma de um menu de grupo (com a exibição da classe "enchimento" numa lista separada), ou organizar um gestor separado, como o de Delphi (a discussão de tal pedido já se encontra no fórum).

 
-Alexey-:
alexvd:

São necessários mais detalhes.

Construção, arquivo, resolução...

Acabou de o experimentar no ficheiro ChartObject.mqh - ele rola para cima e para baixo.

Bild por último, parece ser um problema com o número de linhas superiores a 100. ChartObject.mqh tem apenas 62 filas na lista. Resolução 1680x1050. Windows7, o esquema de tipos de letra é ampliado.

Sim, reproduziu-o.

Obrigado, vamos dar uma vista de olhos.