Ошибки, баги, вопросы - страница 3503

 
A100 #:

случайные результаты получаются

Нулевой символ в строке...

В общем, ошибок не вижу.

 
fxsaber #:

Нулевой символ в строке...

В общем, ошибок не вижу.

Отрицать очевидное - это Ваш конек

Нулевой символ в строке допустим согласно Документации: 

Тип string

В строку могут быть введены любые специальные символьные константы, перед которыми стоит символ обратной косой черты (\).

Название символа

Мнемокод или изображение

Запись в MQL5

Числовое значение

десятичный код

d

'\d'

десятичное число от 0 до 65535

 

MT5 Build 4209 (замечено, начиная с 4201) - не выводит название графика по его id (в предыдущих билдах работает):

long test_chart = ChartFirst();
Print("ID:" + IntegerToString(test_chart) + " CHART:" + ChartSymbol(test_chart));
 
A100 #:

Что касается функций StringToShortArray и ShortArrayToString, то в общем случае там вообще какие то случайные результаты получаются:

Результат: 8:15:10

Пропустил start в StringToShortArray - исправляю:

void OnStart()
{
    string text = "ABC" + "\0" + "DEF";
    ushort Words[];                                             //Результат:
    Print(StringToShortArray(text, Words, 0, StringLen(text))); //7
    Print(StringLen( text ));                                   //7
}

Результат: 7:7

Что и требовалось доказать: наличие \0 в общем случае (при грамотно составленном примере) не влияет

 
A100 #:

Что и требовалось доказать: наличие \0 в общем случае (при грамотно составленном примере) не влияет

Words[]->string->Words[] попробуйте.

 
fxsaber #:

Words[]->string->Words[] попробуйте.

Попробовал - результат: StringToShortArray и ShortArrayToString работают по разному - поэтому вот мои заключительные аргументы:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

Ilyas, 2021.06.08 13:31

Вы правы, изменил поведение StringToCharArray, теперь на всю длину строки, а не до первого символа '\0'

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

A100, 2021.06.08 14:48

Тогда только одна разница между StringToCharArray и StringToShortArray остается:

Просто в те времена, когда все оперативно исправляли ShortArrayToString еще видимо не было. Более того все Cтроковые функции (а их там около 20), кроме StringSplit работают с внутренним '\0' - как с обычным символом - без ошибок (по крайней мере мне ошибки не встречались)

Из функций Преобразования данных с указанной ошибкой работают только ShortArrayToString и CharArrayToString (даже если явно задать число символов) - остальное все исправлено

 

Приходят обновления, но ошибка не исправлена

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 4230: больше встроенных приложений и расширение поддержки ONNX

Aleksey Vyazmikin, 2024.03.04 18:06

Билд 4209 

2024.03.02 06:08:17.952 Terminal        MetaTrader 5 x64 build 4209 started for MetaQuotes Software Corp.
2024.03.02 06:08:17.952 Terminal        Windows 7 Service Pack 1 build 7601, 8 x AMD FX-8350 Eight-Core, AVX, 19 / 31 Gb memory, 169 / 1794 Gb disk, admin, GMT+3
2024.03.04 19:59:36.863 LiveUpdate      check for release version
2024.03.04 19:59:37.018 LiveUpdate      you are using the latest version
2024.03.04 19:59:50.208 LiveUpdate      check for beta version

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

В своих проектах получаю ошибку 4102.


 
Aleksey Vyazmikin #:

Приходят обновления, но ошибка не исправлена

4102 не правили, как и многие другие баг-репорты с воспроизведением.

 
Aleksey Vyazmikin #:

Приходят обновления, но ошибка не исправлена

Вы пишите:  код для воспроизведения можно взять тут 

Взял.

void OnStart()
  {
   CGraphic graphic;
   graphic.Create(0, "Graphic", 0, 30, 30, 780, 380);
   double x[] = {-10, -4, -1, 2, 3, 4, 5, 6, 7, 8};
   double y[] = {-5, 4, -10, 23, 17, 18, -9, 13, 17, 4};
   CCurve *curve = graphic.CurveAdd(x, y, CURVE_LINES);
   graphic.CurvePlotAll();
   graphic.Update();
   Sleep(10000);
  }

Не воспроизводится.


Может ошибка в чём то более конкретном?

 
Aleksandr Slavskii #:

Не воспроизводится.

4102 воспроизводится на WinServer и, похоже, на Win7. Win10 - порядок.