[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 300

 
costy_:
sem sobrescrever este buffer.
E como você imagina a lógica de adicionar uma nova célula?
Em seguida, implemente-o...
 
artmedia70:
E como você imagina a lógica de adicionar uma nova célula?
Em seguida, implemente-o...

Não está funcionando da maneira que eu gostaria que funcionasse).

Terei que reescrevê-lo, se for esse o caso ((.

//---------------------------------------------------------------------
// функция dIndBuf_In
// для эмуляции индикаторного буфера в любого рода скрипте
// bufIn[] ссылка на созданный ранее буфер  | double mine[]; for(i=0;i=10;i++)dIndBuf_In(mine,i,Close[i]); |
// position - смещение баров
// value - значение присваемое смещением бара
//---------------------------------------------------------------------
double dIndBuf_In(double &bufIn[],int position, double value){
   if(ArrayIsSeries(bufIn))ArraySetAsSeries(bufIn,false);
   if(ArraySize(bufIn)!=Bars+1)ArrayResize(bufIn,Bars+1);
   bufIn[Bars-position]=value;
}
//---------------------------------------------------------------------
// функция dIndBuf_Out 
// для извлечения значений эмуляции индикаторного буфера в любого рода скрипте
// bufIn[] ссылка на созданный ранее буфер  | double mine[]; for(i=0;i=10;i++)dIndBuf_In(mine,i,Close[i]); double x=dIndBuf_Out(mine,i)|
// position - смещение баров
//---------------------------------------------------------------------
double dIndBuf_Out(double bufIn[],int position){
   if(ArrayIsSeries(bufIn))ArraySetAsSeries(bufIn,false);
   return(bufIn[Bars-position]);
}
 
artmedia70:

:) O feminino saiu...

E houve um concurso de espirituosidade...

Oh... homens... :)

 
Ajuda com este erro

10
sanches83 28.10.2011 18:24

Boa noite a todos! Ajudem a resolver o problema, porque nesta linguagem não faz sentido, por isso apelo a vocês

A situação é a seguinte:

Há uma parte do código:


Favor aconselhar como fazer, em vez de exibir uma mensagem, o programa está tentando abrir o arquivo novamente, e assim por diante até que ele abra.

Agradecemos antecipadamente a todos vocês!


Tente o laço while(). Veja aqui - https://docs.mql4.com/ru/basis/operators/while
 
22333222:

))

Nós não vivemos sem sorrisos.

 
drknn:

Tente o laço while(). Veja aqui - https://docs.mql4.com/ru/basis/operators/while

Assim.

int handle=0;
while(handle<1){
   handle=FileOpen("firstfile.xlsx",FILE_CSV|FILE_READ|FILE_WRITE,'\t');
   if(handle<1){
     Alert("Ашыпка ",GetLastError());
     Sleep(1000);
    }
} 
 
Ele não precisa de um alerta - entendo que em algum lugar do código, o arquivo provavelmente já está aberto, mas não fechado. É provavelmente por isso que o arquivo não pode ser reaberto e a janela de alerta o está incomodando. Mas talvez eu esteja errado - eu não sou membro do clube de telepatas :(
 
Procurei no fórum, mas não encontrei uma solução rápida, ajude a resolver o problema, enquanto no testador não funciona, na vida real funciona.

Obrigado.

  if(NewBar() == true)
  {
    int Result = -1;
    while(Result == -1)
    {
      if(TotalOpenOrders() < TotalOrders)
      {
        if(TrendDetection() == BULL)
        {
          Result = OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slippage,NormalizeDouble(Ask,Digits)-(StopLoss*Point),NormalizeDouble(Ask,Digits)+(TakeProfit*Point),OrderComments,Magic,0,CLR_NONE); 
        }
...........................

 

Ahhhhhh, estou vendo - o homem está tentando abrir um arquivo exel em modo texto, e não um exel qualquer, mas a versão 2007 e acima. A extensão do arquivo é *.xlsx. Isto não é um arquivo de texto. Uma tentativa de abri-lo como um arquivo de texto resultará no seguinte

Não faria mal salvar este arquivo em eksel como um documento de texto com um nome diferente e especificar o novo nome de arquivo (texto) no handle=FileOpen("firstfile.xlsx",FILE_CSV|FILE_READ|FILE_WRITE,'\t'); especificar o novo nome de arquivo (texto)

 
rustein:
Procurei no fórum, mas não encontrei uma solução rápida, ajude a resolver o problema, enquanto no testador não funciona, na vida real funciona.

Obrigado.


É difícil dizer qual é a questão. Faça uma regra na MQL4: sempre coloque números negativos entre parênteses em seu código. Às vezes podem ocorrer erros sem parênteses.

Embora, você não deve aceitar valores negativos entre parênteses em linhas de código começando com o exterior. Eu não sei por que é assim.