Erreurs, bugs, questions - page 1554

 
Alexey Kozitsyn:
Mais n'importe quel tutoriel C peut également vous convenir.

Merci pour la réponse, mais le lien prête à confusion... Je n'arrive pas à comprendre tout de suite - j'ai vu ce texte dans l'aide avant de commencer à poster sur le forum.

Si je comprends bien, %d permet d'ignorer les zéros, s'il y en a, tandis que %G permet de sortir une valeur sans couper les zéros ? Je ne suis pas un idiot, mais je ne comprends pas l'aide et sans compréhension je ne comprends pas pourquoi ma corde ne fonctionne pas correctement...

 
-Aleks-:

Merci pour la réponse, mais le lien prête à confusion... Je n'arrive pas à comprendre tout de suite - j'ai vu ce texte dans l'aide avant de commencer à poster sur le forum.

Si je comprends bien, %d permet d'ignorer les zéros, s'il y en a, tandis que %G permet de sortir la valeur sans couper les zéros ? Je ne suis pas stupide, mais je ne comprends pas l'aide, et si je ne la comprends pas, je ne comprends pas pourquoi ma chaîne ne fonctionne pas correctement...

Je n'utilise pas cette fonction dans mon travail, mais je ne pense pas qu'il soit difficile de réaliser soi-même des expériences simples.
 
-Aleks-:

Merci pour la réponse, mais le lien prête à confusion... Je n'arrive pas à comprendre tout de suite - j'ai vu ce texte dans l'aide avant de commencer à poster sur le forum.

Si je comprends bien, %d permet d'ignorer les zéros, s'il y en a, tandis que %G permet de sortir la valeur sans couper les zéros ? Je ne suis pas stupide, mais je ne comprends pas l'aide, et si je ne la comprends pas, je ne comprends pas pourquoi ma chaîne ne fonctionne pas correctement...

Lire ici.
 
Alexey Kozitsyn:
Je n'utilise pas cette fonction dans mon travail, mais je pense que vous pouvez facilement réaliser vous-même des expériences simples.

Mais je le fais - j'ai regardé et je l'utilise, mais je n'arrive pas à trouver la syntaxe exacte, parce qu'elle ne correspond pas aux spécifications.

%[flags][width][.precision][{h | l | ll | I32 | I64}]type

Il n'est pas mentionné dans le fichier d'aide que tous les paramètres ne peuvent pas être utilisés. Et, surtout, on ne voit pas clairement où j'ai une erreur de syntaxe, peut-être que si on me l'indiquait, je comprendrais mieux la question.

 
Artyom Trishkin:
Lisez-le ici.

Merci. Je l'ai lu rapidement, à la recherche de la bonne information - il s'avère que la première partie est un modèle et que je me suis trompé... n'est-ce pas ?

Comme, vous devez spécifier les endroits où les variables seront, dans mon cas c'est un index du tableau, le temps et le nombre de type double, et puis les variables elles-mêmes. D'après la logique de l'article, cela devrait ressembler à ceci

for(int i=0;i<N_Sell;i++) printf("OpenSellTime[%d] = %G, PriceOpenSell[%d] = %G",i,TimeToString(OpenSellTime[i],TIME_DATE|TIME_MINUTES),i,PriceOpenSell[i]);

Ou est-ce que c'est encore faux ?

 
-Aleks-:

Merci. Je l'ai lu rapidement, à la recherche de la bonne information - il s'avère que la première partie est un modèle et que je l'ai mal composé... n'est-ce pas ?

Comme, vous devez spécifier les endroits où les variables seront, dans mon cas c'est un index du tableau, le temps et le nombre de type double, et puis les variables elles-mêmes. D'après la logique de l'article, cela devrait ressembler à ceci

for(int i=0;i<N_Sell;i++) printf("OpenSellTime[%d] = %G, PriceOpenSell[%d] = %G",i,TimeToString(OpenSellTime[i],TIME_DATE|TIME_MINUTES),i,PriceOpenSell[i]);

Ou est-ce que c'est encore faux ?

C'est très clairement écrit dans le modèle - les endroits où les variables sont insérées sont marqués par le signe % dans le modèle. L'ensemble du modèle est placé entre guillemets. Ensuite, après le modèle lui-même, des variables séparées par des virgules sont énumérées, qui sont spécifiées dans le modèle. Dans l'ordre de gauche à droite, dans l'ordre dans lequel ils sont écrits dans le modèle.

Il y a aussi toutes les spécifications pour les différents types de variables et leur mise en forme. Il suffit de ne pas le parcourir, en commençant par le titre"Formatage des chaînes de caractères sur le modèle".

 
Artyom Trishkin:

Le modèle est très clair : les endroits où les variables sont insérées sont indiqués par le signe % dans le modèle. L'ensemble du modèle est placé entre guillemets. Ensuite, après le modèle lui-même, les variables du modèle sont listées, séparées par des virgules. Dans l'ordre de gauche à droite, dans l'ordre dans lequel ils sont écrits dans le modèle.

Il y a aussi toutes les spécifications pour les différents types de variables et leur mise en forme. Il suffit de lire sans regarder, en commençant par le titre"Formatage des chaînes de caractères par modèle".

C'est comme ça que je l'ai écrit - entre guillemets le modèle et ensuite dans l'ordre les variables, qu'est-ce qui ne va pas ?
 
-Aleks-:
C'est comme ça que je l'ai écrit - entre guillemets le modèle et ensuite les variables dans l'ordre, qu'est-ce qui ne va pas ?

"OpenSellTime [%index doit être saisi ici] = %time, PriceOpenSell [%index] = %price" - est-ce le modèle ?

Si c'est le cas, ça devrait être comme ça :

"OpenSellTime[%i] = %I64u, PriceOpenSell[%i] = %.5f"

Les valeurs elles-mêmes doivent être énumérées ensuite, séparées par des virgules :

 ,i,OpenSellTime[i],i,PriceOpenSell[i]

total :

printf("OpenSellTime[%i] = %I64u, PriceOpenSell[%i] = %.5f",i,OpenSellTime[i],i,PriceOpenSell[i]);

... Eh bien... si je n'ai rien oublié...

 

MQL4, DoubleToString() et DoubleToString(). Dans DoubleToStr() pour le 2ème argument ajouter "Default 8".

Code :

#property strict
void OnStart()
  {
   Print("1) DoubleToStr(0.123456789) = ",DoubleToStr(0.123456789));
   Print("2) DoubleToString(0.123456789) = ",DoubleToString(0.123456789));
  }

Dans les logs, le résultat pour eux sera = 0.12345679, c'est-à-dire que la fonction arrondit la valeur ; ce n'est pas écrit dans l'aide. Je pense que cela vaut la peine d'écrire plus sur ce sujet, ou au moins de mettre des exemples de ce type là :

string value1=DoubleToStr(1.28473418, 5);
// содержимое строки value1 - "1.28473"

string value2=DoubleToStr(1.28473418, 3);
// содержимое строки value2 - "1.285"

où les arrondis seront visibles.

 

Veuillez indiquer quelles sont les causes possibles de l'erreur 4806 lors du remplissage du tampon de l'indicateur à partir d'un handle qui n'est pas -1.

Jusqu'à présent, j'ai trouvé une variante du sommeil après la création. Dans mon cas, je peux lui donner une minute - tout de même.

Raison: