Бесконечный цикл. Ошибка в коде. - страница 2

 

Малость отображение поменял, ничего не трогая

   if (ExtMapBuffer[pos]> Ask) 
   {                 
      string MADn;
      string MAUp;
      int handle;
      datetime orderOpen=OrderOpenTime();
      handle=FileOpen("MADn.txt", FILE_CSV|FILE_WRITE, '\t');
      if(handle>0) 
         FileWrite(handle, "1");
      FileClose(handle);
   
      handle=FileOpen("MAUp.txt", FILE_CSV|FILE_WRITE, '\t');
      if(handle>0)
         FileWrite(handle, "0");
      FileClose(handle);
   } 
   else 
   {  
      if (ExtMapBuffer[pos]< Ask) 
      {
         handle=FileOpen("MAUp.txt", FILE_CSV|FILE_WRITE, '\t');
         if(handle>0)
            FileWrite(handle, "1");
         FileClose(handle);
   
         handle=FileOpen("MADn.txt", FILE_CSV|FILE_WRITE, '\t');
         if(handle>0)    
            FileWrite(handle, "0");
         FileClose(handle);
      }
   }

Вроде бы нагляднее стало

 
терминал виснет
 
Print решает. Понатыкайте его везде и смотрите, что ваша программа делает, так на глаз дебаг не сделать.
 
hasayama:
Print решает. Понатыкайте его везде и смотрите, что ваша программа делает, так на глаз дебаг не сделать.


Всмысле? Как именно?
 

Раз программа ведет себя не так как вы думаете, значит она не так написана. После каждой сомнительной строки кода выводите при помощи Print'а значения ключевых переменных. Это даст вам возможность понять как то, что хочется получить соотносится с тем, что вы получаете.

Кстати, почитайте справку о работе с файлами, вы не дописываете в файл, а перезаписываете файл полностью.

Если вам просто нужно записывать информацию в файл по циклу, а не "общаться" при помощи флагов, сохраненных в этих файлах, с другой программой, то вполне себе можно открыть файлы всего раз и закрыть их после того, как работа с ними будет завершена. Нет смысла так часто делать Опен/Клоуз.

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