Errors, bugs, questions - page 3011
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Because the 4th parameter
I need to copy the first 3 characters. If I wanted to copy the whole string (7 characters including the ending 0), I would specify -1. And if some of it cannot be copied, what for does this parameter do I need it for?
This parameter is not to specify how many characters you want to copy, like the
sub-string, but to specify how many characters are passed to the array.
i.e. it's a C-like strict security check on the size of the data being passed.
This size will automatically allocate memory for the dynamic array.
If you want to copy three elements from a string, you have to get them from the string first,
, and then pass them in, specifying the size as much as you pass.
This parameter is not to specify how many characters you want to copy, like the
sub-string, but to specify how many characters are passed to the array.
i.e. it is a C-size strict security check on the size of the data being passed.
This size will automatically allocate memory for the dynamic array.
If you need to copy three elements from a string, you have to get them from the string first,
, and then you have to pass them in, specifying the size as much as you pass.
You mean like this?
I mean, right?
Plus one as the size of the terminating zero.
StringLen returns the size without including the zero.
Plus one as the size of the terminating zero.
StringLen returns the size without regard to zero.
I gave an example from the developers and it works
Forum on trading, automated trading systems & strategy testing
Libraries: Library of hash functions and conversions
Ilyas, 2021.03.04 15:12
StringToArray function captures termination zero if string length is not specified (historically)
Therefore, in the CryptDecodeA function you should use
instead of
StringToCharArray(InputText,scr);
I gave an example from the developers and it works.
The use of libraries was not intended in this question ))
This is the nuances of libraries.
Plus one as the size of the terminating zero.
StringLen returns the size without regard to zero.
Is StringToCharArray so incapable of retrieving the string length from a string (especially since you don't need to calculate it in MQL) that external help in the form of an additional parameter is required? And why other MQL functions do not have such supposedly strict"C-check"?
Is StringToCharArray so incapable of extracting string length from string type (especially since it doesn't need to be calculated in MQL) that external help in the form of an additional parameter is required? And why other MQL functions do not have such an allegedly strict check?
This is probably not a question for me, but for the developers.
But this parameter is used to allocate memory size for a dynamic array.
In other words, it's a convenient way to avoid allocating memory for the array by yourself.
Plus, we can check for correctness.
The additional size parameter is a standard practice of rigorous security in sys.
In other functions where size is not required, this parameter is absent.
Usually this parameter is used when working with arrays to allocate memory.
This is what happens in this case.
This is probably not a question for me, but for the developers.
But this parameter is used to allocate memory for a dynamic array.
It means that it is convenient for you not to allocate memory of the array by yourself.
Plus we will get a check for correctness.
And what is check for correctness in? - Suppose I, for example, wrote 0 - a deliberately incorrect value.
And everything is copied correctly and the result: 7 - no error
What is the check for correctness? - So, let's say that I set it to 0, which is a known incorrect value.
And everything is copied correctly. Result: 7 - no error
The trick is in the function description ))
automatic progress ))
which confuses the user more.
This parameter is not to specify how many characters you want to copy as a sub-string
but to specify how many characters are passed to the array.
help disagrees with this interpretation.
The number of array elements to copy. Defines the length of the result string. The default is -1, which means it will copy to the end of the array, or the terminal 0. The terminal 0 will also be copied into the destination array, and the size of the dynamic array can be increased to match the string size if needed. If the size of the dynamic array is greater than the length of the string, then the size of the array will not be reduced.
The description, of course, is atas - string is referred to as an array, array as a string, confusion
Number of array (string) elements to copy. Specifies the length of the resulting string (array). Defaults to -1, which means copying to the end of the array (string), or meeting the terminal 0.