Trabalhar com ficheiros. - página 6

 
Yedelkin:

Há muito tempo que não trabalhava com operações de arquivo. Quando utiliza FileOpen(), tem um ficheiro do tipo CSV declarado. Costumava especificar que todos os artigos escritos são convertidos em unicode ou ansi strings. Talvez seja aqui que o cão está?

Maldito Winnipuh!!!

É aí que está "enterrado" :) Adicionei o parâmetro FILE_ANSI e tudo correu bem!

FileOpen("Price Label\\\\"+_Symbol+tpl_ext,FILE_READ|FILE_CSV|FILE_ANSI,';',CP_ACP);


Yedelkin ,TheXpert obrigado pela dica!!!:)

 

is_vale: 

...

A julgar pelo que vejo no debugger (na variável sTF lê o conteúdo do ficheiro como unicode! Ao abrir o ficheiro tentei todas as codepages possíveis, mas o resultado é o mesmo :( O ficheiro em si é escrito na codificação do Windows.

Alguém tem alguma ideia de onde reside o problema?

Por defeito, está escrito em UNICODE. Por isso, coloque a bandeiraFILE_ANSI:

int handle=FileOpen("Price Label\\"+_Symbol+tpl_ext,FILE_READ|FILE_CSV|FILE_ANSI,';',CP_ACP);

 
tol64:

Por defeito, está escrito em UNICODE. Por conseguinte, colocar a bandeiraFILE_ANSI:

Prontamente solicitado. )))
 
uint  FileReadArray(
   int   file_handle,               // handle файла
   void  array[],                   // массив для записи
   int   start_item=0,              // с какой позиции массива писать
   int   items_count=WHOLE_ARRAY    // сколько читать
   );
Pergunta sobre o tamanho do array[]: devo definir o tamanho do array[] antes de o utilizar emFileReadArray() ou o "tempo de execução do terminal" trat ará do seu tamanho neste caso?
 
Yedelkin:
Pergunta sobre o tamanho do array[]: devo definir o tamanho do array[] antes de o utilizar emFileReadArray() ou o "sistema de execução de terminal" tratará do tamanho neste caso?

Não, a função irá distribuir memória para a quantidade necessária de dados no ficheiro.

A propósito, é possível ler matrizes de estruturas simples da mesma forma, se elas lá estivessem escritas.

A função FileReadArray() não reconhece o tipo de dados guardados, por isso tenha cuidado, esta é uma das características, pode guardar duplicados e lê-los como uma collocation e analisá-los em bits.

 

Fixe.

Urain:

A função FileReadArray() não reconhece o tipo de dados guardados, por isso tenha cuidado, esta é uma das características, pode guardar duplicados e lê-los como um ponto flutuante e analisá-los em bits.

Então, as matrizes devem ser do mesmo tipo quando se salva e lê, estou certo? Será suficiente?

 
Yedelkin:

Fixe.

Então as matrizes devem ser do mesmo tipo ao salvar e ler, estou certo? Será isso suficiente?

Sim.
 
Urain:
Sim.
Gracias muchas!
 
bool  FileCopy(
    string  src_filename,       // имя файла-источника
    int     common_flag,        // место действия
    string  dst_filename,       // имя файла назначения
    int     mode_flags          // способ доступа
    );

A descrição diz:

common_flag

[em] Bandeira que define a localização do ficheiro. Se common_flag=FILE_COMMON, o ficheiro está na pasta partilhada de todos os terminais clientes. Caso contrário, o ficheiro encontra-se na pasta local.

Se o ficheiro fonte estiver na pasta partilhada, então common_flag=FILE_COMMON, isto é compreensível. Mas se o ficheiro estiver localizado numa pasta local, que bandeira deve ser especificada? O parâmetro common_flag não é padrão, o que significa que algum valor deve ser especificado de qualquer forma.
 
Yedelkin:

A descrição diz:

Se o ficheiro fonte estiver numa pasta partilhada, então common_flag=FILE_COMMON, isso é claro. Mas se o ficheiro estiver localizado numa pasta local, que bandeira deve ser especificada? O parâmetro common_flag não é padrão, pelo que deve ser especificado de qualquer forma algum valor.
Se o FILE_COMMON não estiver especificado, o padrão está na pasta local.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов - Документация по MQL5
Razão: