[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 311

 
chief2000:

- Est-il possible de connaître le nombre d'éléments d'un tableau dans un fichier ? Comment éviter les actions inutiles dans ce cas en général ?


FileSize(handle) divisé par la taille de l'élément = nombre d'éléments ?
 
Figar0:

FileSize(handle) divisé par la taille de l'élément = nombre d'éléments ?

Est-ce une supposition ?

Comment connaître la taille d'un élément dans un fichier binaire ? Peut-être qu'une partie est occupée par plus que de simples éléments ?

 
chief2000:

Si vous fixez le nombre trop élevé, vous obtenez beaucoup de valeurs nulles (n'est-ce pas ?).

La documentation semble dire

Функция возвращает количество фактически прочитанных элементов.
 
chief2000:

Est-ce une supposition ?

Comment connaître la taille d'un élément dans un fichier binaire ? Peut-être qu'une partie de celui-ci est occupée par d'autres éléments que les seuls éléments ?


La taille d'un élément dépend de ce que vous y écrivez, soit 4 ou 8. À quoi ressemble votre processus d'écriture ?
 
Roger:

La documentation semble dire

Si un fichier a 1000 éléments et que count=20, il en lira en fait 20.

Mais que se passe-t-il si count=5000 ?

Ce qu'ils entendent par "Avant de lire les données, le tableau doit être de taille suffisante" n'est pas clair - il serait plus facile de lire tous les éléments dans le tableau par nombre d'éléments, puis si nécessaire de tronquer le tableau, etc.

 
Figar0:

La taille de l'élément dépend de ce que vous y écrivez, soit 4 ou 8. À quoi ressemble votre processus d'écriture ?

J'utilise (l'écriture et la lecture sont deux étapes indépendantes) :

 FileWriteArray( int handle, object array[], int start, int count) 
 
chief2000:

J'utilise (l'écriture et la lecture sont deux étapes indépendantes) :


int FileWriteArray( int handle, object array[], int start, int count)

La fonction écrit le tableau dans un fichier binaire. Les tableaux tels que int, bool, datetime et color sont écrits comme suit 4 octets entiers. Les tableaux de type double sont écrits comme des nombres à virgule flottante. 8 octets des nombres à virgule flottante.

Je vous ai exposé ce que vous devez savoir. Si un tableau de doubles a été écrit dans le fichier, la division de la taille du fichier par 8 vous donnera le nombre d'éléments du tableau dans le fichier.

 
Figar0:

int FileWriteArray( int handle, object array[], int start, int count)

La fonction écrit le tableau dans un fichier binaire. Les tableaux tels que int, bool, datetime et color sont écrits élément par élément comme suit 4 octets entiers. Les tableaux de type double sont écrits comme des nombres à virgule flottante. 8 octets des nombres à virgule flottante.

J'ai mis en évidence ce que vous devez savoir. Si un tableau double a été écrit dans un fichier, la division de la taille du fichier par 8 vous donnera le nombre d'éléments du tableau dans le fichier.

J'ai maintenant ouvert un fichier sauvegardé dans un visualisateur de texte - voici à quoi il ressemble :

Il semble qu'il comporte environ 50 éléments (il devrait y en avoir autant), mais sa taille est de 2432 octets. Apparemment, il stocke des "blancs" dedans.

 
Bonjour à tous. Veuillez me conseiller. Comment puis-je utiliser MQL4 dans un indicateur dans une fenêtre séparée pour dessiner l'histogramme non pas à partir de zéro, mais à partir de valeurs spécifiées. Je veux que l'indicateur Ishimoku affiche les valeurs pour d'autres horizons temporels dans une fenêtre séparée.
 
chief2000: Apparemment, il stocke le "blanc" en lui.
Il stocke ce que vous y mettez) Il n'y a pas de miracles.
Raison: