Ошибки, баги, вопросы - страница 3010
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как не записывает, когда записывает - Результат: 4007
Зачем сбрасывать, если пример и так наипростейший. Но в любом случае добавление ResetLastError не влияет на полученный результат
А почему вы в параметре функции указываете три символа, когда в строке их восемь?
или -1 до конца строки, с терминальным нулём
А почему вы в параметре функции указываете три символа, когда в строке их восемь?
или -1 до конца строки, с терминальным нулём
Потому что 4ый параметр
Мне нужно скопировать первые 3 символа. Если бы мне нужно было скопировать всю строку целиком (7 символов включая завершающий 0), то я бы указал -1. А если частично нельзя скопировать, то тогда зачем этот параметр вообще нужен
Как не записывает, когда записывает - Результат: 4007
эээ похоже вы первый кому понадобилось копировать не всю строку ) иначе я не могу объяснить наличие ошибки
Потому что 4ый параметр
Мне нужно скопировать первые 3 символа. Если бы мне нужно было скопировать всю строку целиком (7 символов включая завершающий 0), то я бы указал -1. А если частично нельзя скопировать, то тогда зачем этот параметр вообще нужен
Этот параметр не для того, чтоб указывать сколько вы хотите скопировать символов, как субстрока
а для того чтоб указать какой размер символов передаётся в массив.
т.е. это сишная проверка строгой безопасности, на размер передаваемых данных.
По этому размеру автоматом будет выделена память динамического массива.
Если вам нужно скопировать три элемента из строки, то их сперва нужно получить из строки,
а затем уже передавать, при этом указываете размер сколько передаёте.
Этот параметр не для того, чтоб указывать сколько вы хотите скопировать символов, как субстрока
а для того чтоб указать какой размер символов передаётся в массив.
т.е. это сишная проверка строгой безопасности, на размер передаваемых данных.
По этому размеру автоматом будет выделена память динамического массива.
Если вам нужно скопировать три элемента из строки, то их сперва нужно получить из строки,
а затем уже передавать, при этом указываете размер сколько передаёте.
То есть, так?
То есть, так?
Плюс единица, как размер завершающего нуля.
StringLen возращает размер без учёта нуля.
Плюс единица, как размер завершающего нуля.
StringLen возращает размер без учёта нуля.
Я дал пример от разработчиков и он рабочий
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: Библиотека хеш-функций и конвертаций в другие системы исчисления
Ilyas, 2021.03.04 15:12
Функция StringToArray захватывает терминирующий ноль, если не указывать длину строки (сложилось исторически)
Поэтому, в функции CryptDecodeA нужно использовать
вместо
StringToCharArray(InputText,scr);Я дал пример от разработчиков и он рабочий
Использование библиотек не предполагалось в данном вопросе ))
Это уже нюансы библиотек.
Плюс единица, как размер завершающего нуля.
StringLen возращает размер без учёта нуля.
А что StringToCharArray настолько не в состоянии извлечь длину строки из типа string (тем более, что вычислять ее в MQL не нужно) что требуется внешняя помощь в виде дополнительного параметра? И почему тогда в других MQL функциях нет такой якобы строгой "сишной проверки" проверки?
А что StringToCharArray настолько не в состоянии извлечь длину строки из типа string (тем более, что вычислять ее в MQL не нужно) что требуется внешняя помощь в виде дополнительного параметра? И почему тогда в других MQL функциях нет такой якобы строгой проверки?
Этот вопрос наверно уже не ко мне, а к разработчикам.
Но по этому параметру, выделяется размер памяти для динамического массива.
То есть для вас же удобство, чтоб самим не выделять память массива.
Плюс и проверка на корректность получается.
Дополнительный параметр размера, это стандартная практика строгой безопасности в сях.
В других функциях где не требуется размер, этого параметра и нет.
Обычно этот параметр применяется при работе с массивами, для выделения памяти.
Что в данном случае и происходит.