[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 300

 
costy_:
sin sobrescribir este búfer.
¿Y cómo te imaginas la lógica de añadir una nueva célula?
Entonces ponlo en práctica...
 
artmedia70:
¿Y cómo te imaginas la lógica de añadir una nueva célula?
Entonces ponlo en práctica...

No está funcionando como yo quiero).

Tendré que reescribirlo, si es el 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:

:) Lo femenino salió...

Y hubo un concurso de ingenio...

Oh... hombres... :)


>
 
Ayuda con este error

10
sanches83 28.10.2011 18:24

Buenas noches a todos! Ayuden a resolver el problema, porque en este idioma no tiene ningún sentido por lo que apelo a ustedes

La situación es la siguiente:

Hay una parte del código:


Por favor, aconsejar cómo hacer que en lugar de mostrar un mensaje el programa está tratando de abrir el archivo de nuevo, y así sucesivamente hasta que se abre.

Gracias a todos por adelantado.


Prueba el bucle while(). Véase aquí - https://docs.mql4.com/ru/basis/operators/while
 
22333222:

))

No vivimos sin sonrisas.

>
 
drknn:

Prueba el bucle while(). Véase aquí - https://docs.mql4.com/ru/basis/operators/while

Así.

int handle=0;
while(handle<1){
   handle=FileOpen("firstfile.xlsx",FILE_CSV|FILE_READ|FILE_WRITE,'\t');
   if(handle<1){
     Alert("Ашыпка ",GetLastError());
     Sleep(1000);
    }
} 
 
No necesita una alerta - entiendo que en alguna parte del código, el archivo probablemente ya está abierto pero no cerrado. Probablemente por eso no se puede reabrir el archivo y le molesta la ventana de alerta. Aunque quizás me equivoque, no soy miembro del club de los telépatas :(
 
He buscado en el foro pero no he encontrado una solución rápida, ayudar a resolver el problema con mientras que en el probador no funciona, en la vida real lo hace.

Gracias.

  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, ya veo - el hombre está intentando abrir un archivo exel en modo texto, y no cualquier exel, sino la versión 2007 y superior. La extensión del archivo es *.xlsx. Esto no es un archivo de texto. Un intento de abrirlo como un archivo de texto dará como resultado lo siguiente

No estaría de más guardar este archivo en eksel como un documento de texto con un nombre diferente y especificar el nuevo nombre de archivo (de texto) en handle=FileOpen("firstfile.xlsx",FILE_CSV|FILE_READ|FILE_WRITE,'\t'); especificar el nuevo nombre de archivo (de texto)

 
rustein:
He buscado en el foro pero no he encontrado una solución rápida, ayudar a resolver el problema con mientras que en el probador no funciona, en la vida real lo hace.

Gracias.


Es difícil decir cuál es el problema. Haz una regla en MQL4: pon siempre números negativos entre paréntesis en tu código. A veces pueden producirse errores sin paréntesis.

Sin embargo, no se deben tomar valores negativos entre paréntesis en las líneas de código que comienzan con extern. No sé por qué es así.