[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 471

 
Axmed писал(а) >>


CSV - Valores separados por vírgula. O "," é o delimitador padrão. A separação com ";" é usada com menos freqüência, e não tenho certeza se ela é sequer suportada na MQL4.


int FileOpen( string filename, int mode, int delimiter=';')
Abre arquivo para entrada e/ou saída. Devolve o descritor do arquivo aberto ou -1 em caso de falha. Ligue para GetLastError() para obter mais informações sobre o erro.
Nota: os arquivos só podem ser abertos nos arquivos do terminal(arquivos de teste do terminal em caso de teste por especialistas) ou em suas subpastas.
Os modos FILE_BIN e FILE_CSV não podem ser usados simultaneamente.
Se FILE_WRITE não for combinado com FILE_READ, um arquivo com comprimento zero será aberto. Mesmo que houvesse dados no arquivo antes de ele ser aberto, ele será destruído. Se os dados precisarem ser anexados a um arquivo existente, eles devem ser abertos usando a combinação FILE_READ | FILE_WRITE.
Se FILE_READ não for combinado com FILE_WRITE, o arquivo só será aberto se ele já existir. Se o arquivo não existir, ele pode ser criado usando o FILE_WRITE.
Não mais que 32 arquivos podem ser abertos ao mesmo tempo dentro do mesmo executável. Os descritores de arquivos abertos em um módulo não podem ser transferidos para outros módulos (bibliotecas).
Parâmetros:
nome do arquivo - Nome do arquivo - nome do arquivo.
modo - Método de abertura. Este pode ser um único valor ou uma combinação de valores: FILE_BIN, FILE_CSV, FILE_READ, FILE_WRITE.
delimitador - Um caractere delimitador para arquivos csv. Por padrão é aplicado o caracter ';'.
Exemplo:
 int handle; handle=FileOpen("my_data.csv",FILE_CSV|FILE_READ,';'); if(handle<1) { Print("File my_data.dat not detected, last error ", GetLastError()); return(false); }

Você também deve ler a ajuda.
 
Axmed >>:


Что конкретно Вам не понравилось в том что я пишу?..

Está tudo errado.
O ";" é o delimitador padrão.
FileReadString - não lê a cadeia completa, mas da posição atual do ponteiro no arquivo para o próximo separador.

 

Olá, você poderia me dizer como chamar a variável requerida de um indicador personalizado? Eu tentei GlobalVariableSet() / GlobalVariableGet() - funciona a partir de outro EA, mas não a partir de um indicador. Agradecemos antecipadamente.

 
kara100 писал(а) >>

Olá, você poderia me dizer como chamar a variável requerida de um indicador personalizado, tentei GlobalVariableSet() / GlobalVariableGet() - funciona de outro EA, mas não de um indicador. Agradecemos antecipadamente...


Qual variável você quer obter e de qual indicador?
 

Preço a partir de +MP (linha 228) - Eu preciso de valores de nível (preço)

Arquivos anexados:
ymp_1.mq4  6 kb
 
kara100 писал(а) >>

Preço desde +MP (linha 228) - Preciso de valores (preço) níveis


tente mover o prise variável para nível global, e coloque a string GlobalVariableSet("55", prise); no início da função start() e a partir do outro programa obtenha o dobro x=GlobalVariableGet("55");

 
Techno писал(а) >>


tente mover o prise variável para nível global, e coloque a string GlobalVariableSet("55", prise); no início da função start() e a partir do outro programa obtenha o dobro x=GlobalVariableGet("55");


Eu já tentei... Escreve que a variável global não é descrita, ou seja, as variáveis globais não saem do indicador... >> Vou tentar novamente.

 
kara100 писал(а) >>


Acho que tentei... diz que nenhuma variável global é descrita, ou seja, nenhuma variável global sai do indicador. >> Vou tentar novamente.


Uma vez corrigido o código, afixe-o aqui.
 
Amigos, muito obrigado por responderem. esclarecimento, como converter cadeia para o dobro?
StrToDouble() não funciona :(

Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";");// Открытие файла
if(Handle<0) // Неудача при открытии файла
{
if(GetLastError()==4103) // Если файла не существует,..
Alert("Нет файла с именем ",File_Name);//.. извещаем трейдера
else // При любой другой ошибке..
Alert("Ошибка при открытии файла ",File_Name);//..такое сообщ
PlaySound("Bzrrr.wav"); // Звуковое сопровождение
return; // Выход из start()
}
k=0;
while(FileIsEnding(Handle)==false) // До тех пор, пока файловый ..
{ // ..указатель не в конце файла
//--------------------------------------------------------- 5 --
ss1[k] = (FileReadString(Handle));
x1[k]=StrToDouble(ss1[k]);//
ss2[k] = (FileReadString(Handle));
rr1[k] = (FileReadString(Handle));
rr2[k] = (FileReadString(Handle));
k=k+1;
if(FileIsEnding(Handle)==true) // Файловый указатель в конце
break; // Выход из чтения и рисования
}
FileClose( Handle ); // Закрываем файл
PlaySound("bulk.wav"); // Звуковое сопровождение
//-----------------------------------------------
Alert(" ", ss1[0], " ", ss2[0], " ", rr1[0], " ", rr2[0], " x1== ", x1[0] );

As matrizes de cordas são preenchidas normalmente a partir de um arquivo. Mas, eu preciso converter estas cordas para o dobro.
Eu faço isso:
x1[k]=StrToDouble(ss1[k]);
mas, quando a saída para Alert, x1[0] = 0, o que está errado. ou seja, há um erro na conversão de tipo em algum lugar...

Como corrigir esta situação?
 
Morzh09 >>:

Друзья, спасибо большое, что откликнулись. уточнение, как преобразовать string в double?
StrToDouble() - не прокатывает :(
Строковые массивы заполняются из файла нормально. Но, необходимо преобразовать эти строки в double.
делаю это:
x1[k]=StrToDouble(ss1[k]);
но, при выводе в Алерте, x1[0] = 0, что неправильно. то есть, где-то тут ошибка в преобразовании типов...

Как такую ситуацию исправить?

Você poderia, por favor, postar o roteiro inteiro? Quero dizer com as declarações de matriz variável, etc.