Метод logFile.WriteLine() в системном мониторе WLTR

9/5/2012 9:07:47 AM
Gravatar
Total Posts 30

Метод logFile.WriteLine() в системном мониторе WLTR

Скажите, пожалуйста, а в системном мониторе работают методы записи в текстовый файл?

Ситуация:

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

string path = "D:\\Strategies\\... путь к файлу...\\logFile.txt"; //задаю путь к файлу и файл РЕАЛЬНО СОЗДАЁТСЯ
System.IO.TextWriter logFile = new System.IO.StreamWriter(path, true);

int bar = Bars.Count - 1;
{
//Далее хочу, чтобы прописывалась след информация:

logFile.WriteLine(" ");
logFile.WriteLine("-===" + Date[bar] + "========================-");

// эти строки НЕ прописываются в файл

 

logFile.WriteLine("Текущий бар = " + bar);


if (IsLastPositionActive)
{
logFile.WriteLine("Позиция открыта*********************");
logFile.WriteLine("Цена входа = " + LastActivePosition.EntryPrice);
logFile.WriteLine("Ставлю стоп-приказ на продажу по цене: " + Lowest.Value(bar, Low, periodLowest));
За ранее благодарю, за разъяснения....

9/5/2012 10:33:11 AM
Gravatar
Total Posts 42

Re: Метод logFile.WriteLine() в системном мониторе WLTR

Думаю проблема в том, что вы создаете объект для работы с файлом System.IO.TextWriter logFile = new System.IO.StreamWriter(path, true); каждый раз при срабатывании, но никогда не закрываете его. В конце метода Execute вызовите запись всего буфера logFile.Flush(); и затем закрытие файла logFile.Close();

9/5/2012 10:46:16 PM
Gravatar
Total Posts 30

Re: Метод logFile.WriteLine() в системном мониторе WLTR

Спасибо поправил, теперь работает)))

11/16/2012 3:01:02 PM
Gravatar
Total Posts 42

Re: Метод logFile.WriteLine() в системном мониторе WLTR

Еще лучше использовать конструкцию using.

В этом случае вам следует написать так:

string path = "D:\\Strategies\\... путь к файлу...\\logFile.txt"; //задаю путь к файлу и файл РЕАЛЬНО СОЗДАЁТСЯ

using(System.IO.TextWriter logFile = new System.IO.StreamWriter(path, true))

{

  int bar = Bars.Count - 1;
  {
  //Далее хочу, чтобы прописывалась след информация:

  logFile.WriteLine(" ");
  logFile.WriteLine("-===" + Date[bar] + "========================-");

  // эти строки НЕ прописываются в файл

 

  logFile.WriteLine("Текущий бар = " + bar);


  if (IsLastPositionActive)
  {
    .......

  }//if

  }//int bar

}//using

11/16/2012 8:07:56 PM
Gravatar
Total Posts 30

Re: Метод logFile.WriteLine() в системном мониторе WLTR

Правильно ли я понимаю, что logFile.Close(); и  logFile.Flush(); в случае использования using уже не нужны?

11/16/2012 8:19:35 PM
Gravatar
Total Posts 42

Re: Метод logFile.WriteLine() в системном мониторе WLTR

да