Erreurs, bugs, questions - page 3011
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Ce paramètre ne sert pas à spécifier le nombre de caractères à copier, comme la sous-chaîne
, mais à spécifier le nombre de caractères transmis au tableau.
c'est-à-dire qu'il s'agit d'un contrôle de sécurité strict de taille C sur la taille des données transmises.
Cette taille allouera automatiquement de la mémoire pour le tableau dynamique.
Si vous devez copier trois éléments d'une chaîne de caractères, vous devez d'abord les extraire de la chaîne,
, puis les transmettre, en spécifiant la taille au fur et à mesure.
Tu veux dire comme ça ?
Je veux dire, pas vrai ?
Plus un comme la taille du zéro de terminaison.
StringLen renvoie la taille sans inclure le zéro.
Plus un comme la taille du zéro de terminaison.
StringLen renvoie la taille sans tenir compte de zéro.
J'ai donné un exemple provenant des développeurs et cela fonctionne.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Bibliothèques : Bibliothèque de fonctions de hachage et de conversions
Ilyas, 2021.03.04 15:12
La fonction StringToArray capture la terminaison zéro si la longueur de la chaîne n'est pas spécifiée (historiquement)
Par conséquent, dans la fonction CryptDecodeA, il faut utiliser
au lieu de
StringToCharArray(InputText,scr);
J'ai donné un exemple provenant des développeurs et cela fonctionne.
L'utilisation des bibliothèques n'était pas prévue dans cette question ;))
Il s'agit des nuances des bibliothèques.
Plus un comme la taille du zéro de terminaison.
StringLen renvoie la taille sans tenir compte de zéro.
StringToCharArray est-il si incapable de récupérer la longueur d'une chaîne de caractères à partir d'une chaîne de caractères (d'autant plus que vous n'avez pas besoin de la calculer dans MQL) qu'une aide externe sous la forme d'un paramètre supplémentaire est nécessaire ? Et pourquoi les autres fonctions MQL n'ont-elles pas un"contrôle C" aussi strict?
StringToCharArray est-il si incapable d'extraire la longueur d'une chaîne de caractères à partir du type de chaîne (d'autant plus qu'elle n'a pas besoin d'être calculée dans MQL) qu'une aide externe sous la forme d'un paramètre supplémentaire est nécessaire ? Et pourquoi les autres fonctions MQL ne disposent pas d'un contrôle aussi strict ?
Cette question ne s'adresse probablement pas à moi, mais aux développeurs.
Mais ce paramètre est utilisé pour allouer la taille de la mémoire pour un tableau dynamique.
En d'autres termes, c'est un moyen pratique d'éviter d'allouer soi-même de la mémoire pour le tableau.
De plus, nous pouvons vérifier l'exactitude des données.
Le paramètre de taille supplémentaire est une pratique standard de sécurité rigoureuse dans sys.
Dans les autres fonctions où la taille n'est pas requise, ce paramètre est absent.
Habituellement, ce paramètre est utilisé lorsque l'on travaille avec des tableaux pour allouer de la mémoire.
C'est ce qui se passe dans ce cas.
Cette question ne s'adresse probablement pas à moi, mais aux développeurs.
Mais ce paramètre est utilisé pour allouer de la mémoire pour un tableau dynamique.
Cela signifie qu'il est pratique pour vous de ne pas allouer la mémoire du tableau par vous-même.
De plus, nous aurons un contrôle de l'exactitude des données.
Et à quoi sert la vérification de l'exactitude ? - Supposons que j'ai, par exemple, écrit 0 - une valeur délibérément incorrecte.
Et tout a été copié correctement et le résultat : 7 - aucune erreur
Quel est le contrôle de l'exactitude ? - Disons que je l'ai fixé à 0, ce qui est une valeur délibérément incorrecte.
Et tout est copié correctement. Résultat : 7 - pas d'erreur
L'astuce se trouve dans la description de la fonction ;))
progression automatique ))
ce qui rend l'utilisateur encore plus confus.
Ce paramètre ne sert pas à spécifier le nombre de caractères que vous souhaitez copier en tant que sous-chaîne
mais à spécifier le nombre de caractères transmis au tableau.
L'aide n'est pas d'accord avec cette interprétation.
Le nombre d'éléments du tableau à copier. Définit la longueur de la chaîne de résultats. La valeur par défaut est -1, ce qui signifie que la copie se fera à la fin du tableau, ou à la borne 0. La borne 0 sera également copiée dans le tableau de destination, et la taille du tableau dynamique peut être augmentée pour correspondre à la taille de la chaîne si nécessaire. Si la taille du tableau dynamique est supérieure à la longueur de la chaîne, alors la taille du tableau ne sera pas réduite.
La description, bien entendu, est atas - la chaîne est désignée comme un tableau, le tableau comme une chaîne, confusion
Nombre d'éléments du tableau (chaîne) à copier. Spécifie la longueur de la chaîne (tableau) résultante. La valeur par défaut est -1, ce qui signifie que l'on copie jusqu'à la fin du tableau (chaîne), ou que l'on rencontre la borne 0.
l'aide n'est pas d'accord avec cette interprétation.
L'aide est écrite pour mql et mql est écrit en ci ))
En connaissant les bases du c, il sera clair de quoi il s'agit.