Erro ao ler Arquivo.txt

 

Prezados,


Me respondendo ao tópico de como permitir o usuário introduzir inputs de mesmo tipo e de tamanho variado, consegui uma solução razoável. A partir de uma string de entrada, o usuário informa os vários dados de seu interesse e o programa os interpreta e aloca devidamente. Contudo, quando tudo ia perfeito, me deparo com o seguinte problema:

Tomando a string de entrada feita pelo usuário, o programa passa pelo teste. Tomando a MESMA string pela leitura de um arquivo na qual está guardado tal string, o programa falha. Fiz vários testes e não  consegui detectar diferença entre os dados quando tomados pelo usuário e quando tomado pelo arquivo contendo a mesma informação. 

por exemplo

Preços_s = FileReadString(file_handler, 1); // (me retorna "100,42,3,4,5,666")

Preços_s  == "100,42,3,4,5,666" // me retorna "true"

//função preencher
Preencher("100,42,3,4,5,666"); // FUNFA!
Preencher(Preços_s ); // ERROR!

Estou usando arquivo .txt para melhor compatibilidade com a função FileReadString()(acho que CSV não é tão adequado para essa função...enfim.. tanto faz)... O que poderia causar tão erro? Acredito ser o caractert '\n' que só existe na string lida pelo arquivo... porém, tentei removê-lo e não consegui (não a função para remoção de char no mql5, certo? Tentei substituir e tão pouco de certo. O que eu faço? Minhas suspeitas estão tão mal assim?

 
AnarcoPhysic:

Prezados,


Me respondendo ao tópico de como permitir o usuário introduzir inputs de mesmo tipo e de tamanho variado, consegui uma solução razoável. A partir de uma string de entrada, o usuário informa os vários dados de seu interesse e o programa os interpreta e aloca devidamente. Contudo, quando tudo ia perfeito, me deparo com o seguinte problema:

Tomando a string de entrada feita pelo usuário, o programa passa pelo teste. Tomando a MESMA string pela leitura de um arquivo na qual está guardado tal string, o programa falha. Fiz vários testes e não  consegui detectar diferença entre os dados quando tomados pelo usuário e quando tomado pelo arquivo contendo a mesma informação. 

por exemplo

Estou usando arquivo .txt para melhor compatibilidade com a função FileReadString()(acho que CSV não é tão adequado para essa função...enfim.. tanto faz)... O que poderia causar tão erro? Acredito ser o caractert '\n' que só existe na string lida pelo arquivo... porém, tentei removê-lo e não consegui (não a função para remoção de char no mql5, certo? Tentei substituir e tão pouco de certo. O que eu faço? Minhas suspeitas estão tão mal assim?

Talvez seja interessante postar também o código da função Preencher() assim dá pra analisar melhor...

Mas experimenta usar Trim(), ele remove os \n...

Documentation on MQL5: Standard Library / Strings / CString / Trim
Documentation on MQL5: Standard Library / Strings / CString / Trim
  • www.mql5.com
Standard Library / Strings / CString / Trim - Reference on algorithmic/automated trading language for MetaTrader 5
 
Minions Labs:

Talvez seja interessante postar também o código da função Preencher() assim dá pra analisar melhor...

Mas experimenta usar Trim(), ele remove os \n...

Obrigado por responder. O erro estava em uma função anterior que, por descuido, chamava o dado do input e não da variável obtida pelo mesmo! Mas foi bom me lembrar do TRIM. meu código agora está mais seguro. 


Agradeço pelo tempo doado.


até!

Razão: