[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 300

 
costy_:
без перезаписи данного буфера.
А как вы сами себе представляете логику добавления новой ячейки?
Вот и реализуйте...
 
artmedia70:
А как вы сами себе представляете логику добавления новой ячейки?
Вот и реализуйте...

А не получается так как хочется )).

Буду перезаписывать, коль так ((.

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

:) Появилось женское начало...

И пошло соревнование в остротах...

Эх... мужуки... :)


>
 
Помогите обработать ошибку

10
sanches83 28.10.2011 18:24

Всем добрый вечер! Помогите решить проблемку, так как в этом языке вообще ничего не смыслю так что обращаюсь к Вам

Ситуация следующая:

Есть часть кода:


тут открывается файл и проверяется если он не открылся- то выводится сообщение об ошибке. подскажите пожалуйста как сделать что бы вместо вывода сообщения программа снова попыталась его открыть, и так до тех пор пока не откроет.

Заранее всем спасибо!


Цикл while() попробуйте. Смотреть тут - https://docs.mql4.com/ru/basis/operators/while
 
22333222:

))

Без улыбок не живем.

>
 
drknn:

Цикл while() попробуйте. Смотреть тут - https://docs.mql4.com/ru/basis/operators/while

Типа так

int handle=0;
while(handle<1){
   handle=FileOpen("firstfile.xlsx",FILE_CSV|FILE_READ|FILE_WRITE,'\t');
   if(handle<1){
     Alert("Ашыпка ",GetLastError());
     Sleep(1000);
    }
} 
 
Ему не нужен алерт - я так понял, что где-то в коде скорее всего файл уже открыт, но не закрыт. Видать поэтому не удаётся переоткрыть файл и человека мучают окна алертов. Хотя, мож я и не прав - не состою я в клубе телепатов :(
 
Искал на форуме, но не нашел быстрого решения, помогите решить проблему с while в тестере не работает, на реале работает.

Спасибо.

  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); 
        }
...........................

 

Аааааа, ну понятно - человек пытается в текстовом режиме открыть файл экзеля, да ещё и не просто экзеля, а версии 2007 и выше. Расширение то у файла *.xlsx. Это же не текстовый файл. Попытка его открытия как текста приводит к вот такому результату

Не мешало бы в экзеле этот файл сперва сохранить как текстовый документ под другим именем и в строке handle=FileOpen("firstfile.xlsx",FILE_CSV|FILE_READ|FILE_WRITE,'\t'); указать новое (текстовое) имя файла

 
rustein:
Искал на форуме, но не нашел быстрого решения, помогите решить проблему с while в тестере не работает, на реале работает.

Спасибо.


Трудо сказать в чём у Вас загвоздка. Возьмите себе за правило в MQL4 всегда в коде отрицательные числа брать в скобки. Без скобок иной раз почему-то ошибки выскакивают.

Хотя, в строках кода, начинающихся с extern брать отрицательные значения в скобки наоборот не нужно. Почему так - не знаю.

Причина обращения: