[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 300

 
costy_:
sans écraser ce tampon.
Et comment imaginez-vous la logique de l'ajout d'une nouvelle cellule ?
Ensuite, mettez-le en œuvre...
 
artmedia70:
Et comment imaginez-vous la logique de l'ajout d'une nouvelle cellule ?
Ensuite, mettez-le en œuvre...

Ça ne marche pas comme je le voudrais).

Je vais devoir le réécrire, si c'est le cas ((.

//---------------------------------------------------------------------
// функция 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:

:) Le féminin est sorti...

Et il y avait un concours de mots d'esprit...

Oh... les hommes... :)


>
 
Aide avec cette erreur

10
sanches83 28.10.2011 18:24

Bonsoir à tous ! aidez à résoudre le problème, parce que dans cette langue n'a pas de sens, alors je fais appel à vous

La situation est la suivante :

Il y a une partie du code :


Veuillez me conseiller sur la manière de faire en sorte qu'au lieu d'afficher un message, le programme essaie d'ouvrir à nouveau le fichier, et ainsi de suite jusqu'à ce qu'il s'ouvre.

Merci d'avance à tous !


Essayez la boucle while(). Voir ici - https://docs.mql4.com/ru/basis/operators/while
 
22333222:

))

Nous ne vivons pas sans sourire.

>
 
drknn:

Essayez la boucle while(). Voir ici - https://docs.mql4.com/ru/basis/operators/while

Comme ça.

int handle=0;
while(handle<1){
   handle=FileOpen("firstfile.xlsx",FILE_CSV|FILE_READ|FILE_WRITE,'\t');
   if(handle<1){
     Alert("Ашыпка ",GetLastError());
     Sleep(1000);
    }
} 
 
Il n'a pas besoin d'une alerte - je comprends que quelque part dans le code, le fichier est probablement déjà ouvert mais pas fermé. C'est probablement pour cela que le fichier ne peut pas être rouvert et que la fenêtre d'alerte le dérange. Peut-être que je me trompe - je ne suis pas un membre du club des télépathes :(
 
J'ai cherché sur le forum mais je n'ai pas trouvé de solution rapide, pour aider à résoudre le problème, car si dans le testeur ça ne marche pas, dans la vie réelle ça marche.

Merci.

  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, je vois - l'homme essaie d'ouvrir un fichier exel en mode texte, et pas n'importe quel exel, mais la version 2007 et supérieure. L'extension du fichier est *.xlsx. Il ne s'agit pas d'un fichier texte. Si vous tentez de l'ouvrir en tant que fichier texte, vous obtiendrez le résultat suivant

Cela ne ferait pas de mal d'enregistrer ce fichier dans eksel comme un document texte sous un nom différent et de spécifier le nouveau nom de fichier (texte) dans handle=FileOpen("firstfile.xlsx",FILE_CSV|FILE_READ|FILE_WRITE, '\t') ; spécifier le nouveau nom de fichier (texte)

 
rustein:
J'ai cherché sur le forum mais je n'ai pas trouvé de solution rapide, pour aider à résoudre le problème, car si dans le testeur ça ne marche pas, dans la vie réelle ça marche.

Merci.


Il est difficile de dire quel est le problème. Établissez une règle dans MQL4 : mettez toujours les nombres négatifs entre parenthèses dans votre code. Il arrive parfois que des erreurs se produisent sans parenthèses.

Cependant, vous ne devriez pas prendre de valeurs négatives entre parenthèses dans les lignes de code commençant par extern. Je ne sais pas pourquoi il en est ainsi.

Raison: