Проблема с CSV - страница 2

 
DDFedor >>:

Ваши слова ни к чему, и ни о чем не говорят... если уверены в логике кода, тогда вопрос логики отпадает... не уверены - код "в студию"...

int start()
  {
ExpertOrdersTotal = TotalBuy()+TotalSell(); // СКОЛЬКО ВСЕГО ОРДЕРОВ ОТКРЫТО  
   if (ExpertOrdersTotal>=Sdelki)         // 
     {                                   // 
      //Print("превышено кол-во сделок,выход"); 
      return(0);
     }   
   else
     {
//--------------------     
        h1 = FileOpen("my_proba.csv", FILE_CSV | FILE_WRITE | FILE_READ, ";");
        if(h1 < 0)
          {
           Print("Невозможно открыть my_data.csv");
           return(false);
          }
        else 
          { 
            GetNameOP(GetTypeLastClosePos2(NULL));
            if(GetTypeLastClosePos2()==0)
              {
              Print("Запись в файл ");
              FileSeek(h1, 0, SEEK_END);
              FileWrite(h1, "");
              FileWrite(h1, );  
              FileWrite(h1, );  
              FileWrite(h1, );  
              FileWrite(h1, );  
              FileWrite(h1, );
              FileClose(h1);
              }
          if(GetTypeLastClosePos2()==1)
              {
              Print("Запись в файл ");
              FileSeek(h1, 0, SEEK_END);
              FileWrite(h1, "");
              FileWrite(h1, );  
              FileWrite(h1, );  
              FileWrite(h1, );  
              FileWrite(h1, );   
              FileWrite(h1, );
              FileClose(h1);
              }
          } //

if(iRSI(NULL,0,14,PRICE_CLOSE,0)<25)
    {
     ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-25*Point,Ask+25*Point,"My order #"+counter,16384,0,Green);
     if(ticket<0)
       {
        Print("OrderSend failed with error #",GetLastError());
        return(0);
       }
    }

 
}
return(0);                                  
  
вот весь собственно и код!
 

именно про это я и говорил... вынесите FileClose из внутренностей и поместите на один уровень с FileOpen... нужно стараться использовать парно... FileOpen - FileClose... как скобками...

логика в том, что FileClose должен исполниться НЕЗАВИСИМО от условий...

и сделайте проверку на "третье" условие GetTypeLastClosePos2()... Вы будете удивлены... что вместо предполагаемых параметров может появиться еще что-то...

это следует из вашего первого вопроса. Ваша конструкция работоспособна, но не стройна... "третий" параметр выбивает систему... именно поэтому файл "иногда" не закрывается...

 

А зачем так много ?

              FileWrite(h1, "");
              FileWrite(h1, );  
              FileWrite(h1, );  
              FileWrite(h1, );  
              FileWrite(h1, );   
              FileWrite(h1, );

Ведь можно так

 FileWrite(h1, "",парм2,,,,,пармN);
За один присест так сказать писануть... ;)
 
kombat писал(а) >>

А зачем так много ?

Ведь можно так

За один присест так сказать писануть... ;)

И лучше будет. Читабельнее по крайней мере

 
DDFedor >>:

именно про это я и говорил... вынесите FileClose из внутренностей и поместите на один уровень с FileOpen... нужно стараться использовать парно... FileOpen - FileClose... как скобками...

логика в том, что FileClose должен исполниться НЕЗАВИСИМО от условий...

и сделайте проверку на "третье" условие GetTypeLastClosePos2()... Вы будете удивлены... что вместо предполагаемых параметров может появиться еще что-то...

это следует из вашего первого вопроса. Ваша конструкция работоспособна, но не стройна... "третий" параметр выбивает систему... именно поэтому файл "иногда" не закрывается...

а что там может появиться? оттуда лишь передаеться параметр в соответствии с типом операции 0 покупка 1 продажа,..  

 
kombat >>:

А зачем так много ?

Ведь можно так

За один присест так сказать писануть... ;)



а там так и есть )) только все параметры не помещаються))

 
Infinity писал(а) >>

а что там может появиться? оттуда лишь передаеться параметр в соответствии с типом операции 0 покупка 1 продажа,..

Вы правы... return еще понатыкано ... проблема - в логике... проверьте логику.

 

проверку обязательно сделаю,.... я там уже и код на 100 раз переделал,.. это черновой как бы вариант,........ вернее даже отрывок из него ))

всем спасибо за помощь!

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