Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 633

 
hoz:


Да нет. Уже перелопатил папки каталога своего терминала:

 Там нигде нет файла с именем:

 Какое должно быть судя из моего кода.

 

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

укороти имя файла до "1" или еще как нибудь уникально обзови и выполни поиск по диску встроенными средствами винды...

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

 
barabashkakvn:
Чтобы с MetaTrader4/MetaEditor4 не было проблем - установите в настройках файлов терминала и редактора "Запускать от имени Администратора". После такого начинает корректно работать MQL4.Cloud и шаблоны в терминале.


Благодарю. Как-то я сразу не догадался :) Пробывать буду. Но, на данный момент, уже замечу, что "Каталог программы" перенёсся сразу по нормальному пути:

C:\Program Files (x86)\Имя терминала\

 Как и раньше. Хотя "Общая папка данных" всё же осталась тут:

C:\Users\hoz\AppData\Roaming\MetaQuotes\Terminal\Common
 
hoz:


Благодарю. Как-то я сразу не догадался :) Пробывать буду. Но, на данный момент, уже замечу, что "Каталог программы" перенёсся сразу по нормальному пути:

 Как и раньше. Хотя "Общая папка данных" всё же осталась тут:

 

хм, от администратора.... надо ли? народ не знает как отфаерволить.... 

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

в принципе понял - установить его от имени "не администратора" 

Сенк`с !!! ))) 

 
_new-rena:

хм, от администратора.... надо ли? народ не знает как отфаерволить.... 

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

в принципе понял - установить его от имени "не администратора" 

Сенк`с !!! ))) 


Как перешел на Windows 8.1 так сразу и пришлось выдумывать  такой способ :)
 

В итоге файла как не было, так и нет. Вот текущий код класса:

// 1.1 Пишим Log-файл. ====================================================================================================================
CLogging::fWriteLog( string  fs_Txt,                           // Данные, которые требуется записать в log-файл
                      bool   fb_PrintPermission = true,        // Флаг печати комментариев
                      bool   fb_CommentPermission = true )     // Флаг показа комментариев на графике
{
   static datetime ldt_NewDayOpen = 0;
   static string   ls_FileName = "";
   datetime        ldt_CurrDayOpen = iTime( Symbol(), NULL, PERIOD_D1 );
   //---- Имя лог файла определяем один раз в сутки
   if ( ldt_NewDayOpen != ldt_CurrDayOpen )
   {
      // ls_FileName = StringConcatenate( WindowExpertName(), "_", Symbol(), "_", Period(), "-", Month(), "-", Day(), ".log" );
      ls_FileName = StringConcatenate( "T" );
      ldt_NewDayOpen = ldt_CurrDayOpen;
   }
   int handle = FileOpen( ls_FileName, FILE_READ|FILE_WRITE|FILE_CSV, "/t" );
   
   FileSeek( handle, 0, SEEK_END );
   FileWrite( handle, StringConcatenate(TimeToStr(TimeCurrent(), TIME_DATE|TIME_SECONDS), ": ", fs_Txt) );
   FileClose( handle );
   
//   fPrint( fs_Txt, fb_PrintPermission, fb_CommentPermission );
}

 Вызываю его из эксперта. Класс рабочий. Функцию fPrint, которая в самом низу рабочая (печатает на экран что нужно) я закомментил, т.к. тестирую именно создание и запись в файл. Длинную имени файл ограничил одним символом "T".

 Файла нет. Вот поиск выдал:


 
hoz:

В итоге файла как не было, так и нет. Вот текущий код класса:

 Вызываю его из эксперта. Класс рабочий. Функцию fPrint, которая в самом низу рабочая (печатает на экран что нужно) я закомментил, т.к. тестирую именно создание и запись в файл. Длинную имени файл ограничил одним символом "T".

 Файла нет. Вот поиск выдал:

                  

int handle=FileOpen(Symbol()+".csv",FILE_READ|FILE_WRITE|FILE_CSV);
if(handle>0)
{                  
FileSeek(handle,0,SEEK_END);
double BID=MarketInfo(Symbol(),MODE_BID);
FileWrite(handle,DoubleToString(BID,4));
}
FileClose(handle);

попробуй такое, (не люблю разбираться в чужих кодах)

И еще, рынок стоит, тики не приходят, start() не работает. Поставь код в init() и компильни... и будет тябе счастьЁоо-оО ))) !

//К рынку не забудь перекинуть в start() или как там счас по новому...

 

Как с помощью оператора return возвращают СТРУКТУРЫ?

Пользовательская функция может возвращать структуры или это где-то в другом месте используется?

Структура может содержать операторы, или это просто набор переменных?

Ивообще как  с ними работают? (только по-русски и без ссылок на чьи-то программы длиной в милю, можно ведь примерв попроще, типа с=а+б)

 
tara, я это читала. Три раза:-)) Я про оператор return спрашиваю. Я вроде как собиралась что-то там "разгрузить" чтоб не переписывать одно и то же по 5 раз. Или там что-то можно обьявить public/protected и не морочить себе я..?
 

Вот здесь

https://docs.mql4.com/ru/basis/operators/return

написано:

"Можно возвращать простые типы, простые  структуры, указатели объектов. При помощи оператора return нельзя возвращать любые массивы, объекты классов, переменные типа сложных структур.

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