Новая версия платформы MetaTrader 5 build 5830: общие улучшения - страница 6

 

Здравствуйте,

Функция FileCopy и FileMove не работаю в новом обновлении 5830 - 5833

Ошибка в обоих функций: ERR_CANNOT_OPEN_FILE / 5004 / Ошибка открытия файла




Всё работало в прошлых обновлениях ниже 5830.

Файлы:
Test.mq5  54 kb
 
Ruslan Pishun #:

Здравствуйте,

Функция FileCopy и FileMove не работаю в новом обновлении 5830 - 5833

Ошибка в обоих функций: ERR_CANNOT_OPEN_FILE / 5004 / Ошибка открытия файла




Всё работало в прошлых обновлениях ниже 5830.

это вы так испытаете MQL на максимальную длину идентификаторов и файловую систему на допустимость символов в именах файлов? :-)

напечатайте что там у вас в string__Write_ получилось

в windows именах [] вроде как разрешены, но не везде может быть так, если wine - то фс. может быть другая и там будет нельзя 

и AccountServer() может содержать чёрти-что

см. https://learn.microsoft.com/ru-ru/windows/win32/fileio/naming-a-file

или это сумрачное порождение AI ? 

Именование файлов, путей и пространства имён - Win32 apps
Именование файлов, путей и пространства имён - Win32 apps
  • jwmsft
  • learn.microsoft.com
Файловые системы, поддерживаемые Windows, используют концепцию файлов и каталогов для доступа к данным, хранящимся на диске или устройстве.
 
Botan626 #:

А почему TextGetSize возвращает значение большее, чем высота строки?

Разработчики прошу объяснить почему так. Непонятно что с этим делать.

В справке TextSetFont написано ведь: "Чтобы получить на экране текст такого же размера, как и в объекте OBJ_LABEL, возьмите указанный в свойствах объекта размер шрифта и умножьте на -10."

А фактически OBJ_LABEL получается выше, чем текст. Масштаб шрифта 100% в ОС. 

Документация по MQL5: TextSetFont / Графические объекты
Документация по MQL5: TextSetFont / Графические объекты
  • www.mql5.com
Устанавливает шрифт для вывода текста методами рисования и возвращает результат успешности этой операции. По умолчанию используется шрифт Arial и...
Файлы:
 
Botan626 #:

Разработчики прошу объяснить почему так. Непонятно что с этим делать.

В справке TextSetFont написано ведь: "Чтобы получить на экране текст такого же размера, как и в объекте OBJ_LABEL, возьмите указанный в свойствах объекта размер шрифта и умножьте на -10."

А фактически OBJ_LABEL получается выше, чем текст. Масштаб шрифта 100% в ОС. 

TextSetFont влияет на TextOut (рисование в буфере на канвасе), а в вашем скрипте - только объекты.
 
Stanislav Korotky #:
TextSetFont влияет на TextOut (рисование в буфере на канвасе), а в вашем скрипте - только объекты.

Хорошо, это я понял и добавил OBJ_BITMAP_LABEL на график.

Но возможно как-то посчитать расстояние между высотой строки, полученной в TextGetSize (на графике эту высоту показывает прямоугольник), и фактическим расположением строки по вертикали? Почему они разные?

Получается в TextOut текст ограничивает прямоугольник с какими-то зазорами. Хочется узнать размер этих зазоров.

 
Botan626 #:

Хорошо, это я понял и добавил OBJ_BITMAP_LABEL на график.

Но возможно как-то посчитать расстояние между высотой строки, полученной в TextGetSize (на графике эту высоту показывает прямоугольник), и фактическим расположением строки по вертикали? Почему они разные?

Получается в TextOut текст ограничивает прямоугольник с какими-то зазорами. Хочется узнать размер этих зазоров.

Начертание букв и соотношение их видимой части с внешними границами зависит от конкретного шрифта и недоступно из MQL5. Подробнее про эти метрики можно прочитать в википедии и пр.

Для чтения этих характеристик можно попробовать вызвать системные функции из DLL (в частности, GetGlyphOutline из Windows GDI и пр).

 
Botan626 #:

Хорошо, это я понял и добавил OBJ_BITMAP_LABEL на график.

Но возможно как-то посчитать расстояние между высотой строки, полученной в TextGetSize (на графике эту высоту показывает прямоугольник), и фактическим расположением строки по вертикали? Почему они разные?

Получается в TextOut текст ограничивает прямоугольник с какими-то зазорами. Хочется узнать размер этих зазоров.

в терминале мне кажется что никак, всё таки это не типографский софт.

в прочих местах эта характеристика называется BaseLine и берётся из свойств шрифта. 

 
Понятно. Ситуация сложная. Надо думать что с этим делать.
 
Renat Fatkhullin #:

Значит, что в портативном режиме используются каталоги, в которые требуются повышенные права.

Мы массово используем портативные режимы в правильных каталогах при обязательном включенном UAC (его отключать в нынешнее время категорически нельзя) и никаких вопросов не возникает. 

Если же вы запускаете портативный режим в C:\Program Files и аналогичных местах, то требование повышения привилегий для записи в защищенный системой каталог разумно.

Может быть сейчас получиться добавить в редактор Фолдинг? 

Просим давно, дайте возможность сворачивать код.

 
Vladimir Pastushak #:

Может быть сейчас получиться добавить в редактор Фолдинг? 

Просим давно, дайте возможность сворачивать код.

Если выбор между двух, тогда лучше добавить подсветку совпадений переменных.