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

 
A100:
Просто частично исправили ошибки ... почему бы и нет!?

По тому что в MQL нет целостной идеи при работе со строками с NULL символами в этом и проблема.
Например StringToShortArray поддерживает NULL символы в строке, а обратная ей функция ShortArrayToString  уже нет...

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

 
A100:

Что то как-то сложно. Проще по аналогии с конструктором по умолчанию:

1) любой оператор присваивания отменяет оператор присваивания по умолчанию

2) любой оператор копирования отменяет оператор копирования по умолчанию

Мне не нужна отмена, нужна наоборот принудительная генерация. 
В MQL нет функционала на deep copy сложных типов, а в операторе присваивания и конструкторе копирования они реализованы по дефолту.

 
Sergey Dzyublik:

По тому что в MQL нет целостной идеи при работе со строками с NULL символами в этом и проблема.
Например StringToShortArray поддерживает NULL символы в строке, а обратная ей функция ShortArrayToString  уже нет...

С одной стороны да, с другой стороны об этом явно указано в Документации: "либо до встречи терминального 0"

 
Sergey Dzyublik:
ну как бы изначально непонятно зачем нуль-строки из плюсов тащили.
 
A100:

С одной стороны да, с другой стороны об этом явно указано в Документации (что нет)

А в StringToShortArray написано то же:

 Количество элементов массива для копирования. Определяет длину результатной строки. По умолчанию -1, что означает копирование до конца массива, либо до встречи терминального 0.

Однако это не мешает ему адекватно обрабатывать NULL символы в строке.

 
Здравствуйте. Мобильная версия MT5 не подключается к брокеру Alpari. В чем дело? Когда-то это будет устранено?
 
astronom55:
Здравствуйте. Мобильная версия MT5 не подключается к брокеру Alpari. В чем дело? Когда-то это будет устранено?

Здесь.

 
Sergey Dzyublik:

А в StringToShortArray написано то же:

Однако это не мешает ему адекватно обрабатывать NULL символы в строке.

ShortArrayToString( array, start, count ) неправильно работает: терминальный 0 это не любой 0, а только тот, который в конце. В данном случае конец или нет - можно определить исходя из ArraySize( array ). По крайней мере, если явно задан count, то результирующая строка должна быть не короче min( count, ArraySize( array ))

А StringToShortArray( text, array, start, count ) правильно работает: терминальный 0 - это тот, который в конце. А конец определяется исходя из StringLen( text )

 
Artyom Trishkin:

Здесь.

  • Вы не предоставили никаких конкретных материалов, чтоб можно было рассмотреть вашу проблему. - Эта проблема у всех пользователей на Android
  • Ваш вопрос настолько широк, что без уточнений нельзя ответить однозначно - Спрашивайте, что Вам не понятно.
  • Вы просто лентяй, который не читает документацию. Большинство ваших проблем просто от незнания базовых понятий языка MQL - Думаю, что этого нет в документации.
  • Вы забанены на доступ к google или просто не умеете пользоваться поиском - поиск не дал результатов.

1


Это только часть отзывов о мобильной версии MT5.

2

Это форум Альпари

А вы ничего об этом не знаете?

Справочник MQL4
Справочник MQL4
  • docs.mql4.com
MetaQuotes Language 4 (MQL4) - встроенный язык программирования торговых стратегий, разработанный компанией MetaQuotes Software Corp. на основе своего многолетнего опыта в создании торгово-информационных платформ. Этот язык позволяет писать собственные программы-эксперты (Expert Advisors), автоматизирующие управление торговыми процессами и...
 

при выполнении скрипта 


#include <Files\FileTxt.mqh>
void OnStart(){

  CFileTxt file;
  int handle = file.Open( "test.bat", FILE_WRITE | FILE_ANSI | FILE_REWRITE ); //
  if( handle == INVALID_HANDLE ){
    int error = GetLastError();
    Print("Ошибка создания файла, код ошибки ",  error );
    return;
  }
}


ошибка





в чем может быть причина?


если изменить имя файла 


int handle = file.Open( "test", FILE_WRITE | FILE_ANSI | FILE_REWRITE ); //

ошибки нет