Erreurs, bugs, questions - page 2461
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 qui suit est mon opinion subjective. Si je me trompe quelque part, je serai heureux de vous aider.
StringLen fonctionnait en O(n) jusqu'au premier caractère NULL (0x0000) dans la chaîne mais maintenant il fonctionne en O(1).
Lalongueur des chaînes pouvait toujours être tronquée via StringSetCharacter(str, pos, 0x00), mais ils ont introduit StringSetLength pour une raison quelconque.
Très probablement, l'analyseur a résolu la tâche d'accélération du code lors du travail avec des chaînes de caractères.
La tâche d'accélérer le code a été résolue et personne ne se soucie du fait que la moitié de la fonction gère maintenant les caractères NULL dans les chaînes de caractères et que l'autre moitié ne le fait pas.
Le résultat :
StringLen fonctionnait en O(n) jusqu'au premier caractère NULL (0x0000) dans la chaîne, maintenant il fonctionne en O(1)
Aux développeurs :
Veuillez ajouter la possibilité de spécifier la génération de code forcée pour l'opérateur d'affectation par défaut (constructeur de copie) :
C'est un peu compliqué. Il est plus facile d'utiliser l'analogie du constructeur par défaut :
1) tout opérateur d'affectation remplace l'opérateur d'affectation par défaut
2) Tout opérateur de copie remplace l'opérateur de copie par défaut.
Juste des erreurs partiellement corrigées ... pourquoi pas ?
Le problème vient du fait que MQL n'a pas d'idée cohérente pour traiter les chaînes de caractères contenant des caractères NULL.
Par exemple, StringToShortArray supporte les caractères NULL dans une chaîne de caractères alors que la fonction inverse ShortArrayToString ne le fait pas...
En conséquence, on consacre plus de temps à la détection des bogues et à la recherche de solutions de contournement qu'à la résolution de tâches particulières.
C'est un peu compliqué. Il est plus facile d'utiliser l'analogie du constructeur par défaut :
1) tout opérateur d'affectation remplace l'opérateur d'affectation par défaut
2) tout opérateur de copie annule l'opérateur de copie par défaut
Je n'ai pas besoin de défaire, j'ai besoin, au contraire, d'une génération forcée.
MQL n'a pas de fonctionnalité pour la copie profonde des types complexes, et dans l'opérateur d'affectation et le constructeur de copie, ils sont implémentés par défaut.
Comme il n'y a pas d'idée cohérente dans MQL pour traiter les chaînes de caractères avec des caractères NULL, c'est là le problème.
Par exemple, StringToShortArray prend en charge les caractères NULL dans une chaîne, alors que sa fonction inverse ShortArrayToString ne le fait pas...
D'une part, oui, d'autre part, il est explicitement indiqué dans la documentation: "ou jusqu'à ce que la borne 0 soit atteinte".
D'une part, oui, d'autre part, il est explicitement indiqué dans la documentation(que ce n'est pas le cas).
EtStringToShortArray dit la même chose :
Toutefois, cela ne l'empêche pas de traiter de manière adéquate les caractères NULL dans la chaîne.
Bonjour. La version mobile de MT5 ne se connecte pas à mon courtier Alpari. Quel est le problème ? Est-ce que cela sera corrigé à un moment donné ?
Ici.