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
Sergei a plusieurs Expert Advisors qui travaillent là, il y a plusieurs lignes, donc c'est un tableau. Et c'est pourquoi tout est laid. Maxim Kuznetsov a suggéré SQL, c'est la bonne façon pour ces EA de communiquer entre eux.
Mais les lignes sont lues une par une et, d'une manière ou d'une autre, la bonne est sélectionnée. Et alors vous n'avez pas besoin d'un tableau.
J'ai dit ça aussi, mais mql4 ne supporte pas SQLite.
Je n'ai pas branché la bibliothèque ? Ou pas là, j'ai oublié.
Je n'ai pas branché la bibliothèque ? Ou pas là, j'ai oublié.
Il semble qu'il ne soit pas possible d'éditer un fichier en même temps, car la version du fichier qui a été enregistrée plus tard est conservée.
Par exemple, le programme A a ouvert le fichier pour l'éditer, au même moment le programme B a fait de même, puis le programme A a effectué les modifications et les a enregistrées en utilisant FileClose, puis le programme B a fait de même, mais lorsque le programme C ouvrira le fichier, il n'affichera pas les modifications effectuées par le programme A, mais seulement les modifications qui ont été implémentées et enregistrées par le programme B, parce que le programme B a enregistré le fichier plus tard que le programme A.
Mais ce n'est pas certain.
Y a-t-il des informations à ce sujet ?
Le travail simultané de programmes avec un seul fichier est le pire des maux. Au moment de travailler avec le fichier, le conseiller expert doit contrôler l'interdiction de lecture/écriture de ce fichier par d'autres conseillers experts. Utiliser lavariable globale SQL ou flag ou le fichier flag. Sinon, il y aura des erreurs incompréhensibles et difficiles à détecter.
Ce n'est pas si mal, les tâches sont différentes, mais il y a certaines particularités dont il faut tenir compte.
Apparemment, les modifications sont sauvegardées exactement au moment de FileClose, et personne n'en est conscient jusque là.
Il semble qu'il ne soit pas possible d'éditer un fichier en même temps, car la version du fichier qui a été enregistrée plus tard est conservée.
Par exemple, le programme A a ouvert le fichier pour l'éditer, le programme B a fait de même, puis le programme A a apporté des modifications et les a enregistrées à l'aide de FileClose, puis le programme B a fait de même, mais lorsque le programme C ouvrira le fichier, celui-ci ne contiendra pas les modifications apportées par le programme A, mais uniquement les modifications apportées et enregistrées par le programme B, car ce dernier a enregistré le fichier plus tard que le programme A.
Mais ce n'est pas certain.
Y a-t-il des informations à ce sujet ?
Il est difficile de le mettre en place, mais pas impossible. Il suffit de vérifier, avant de sauvegarder, l'heure du dernier changement avec la même heure à l'ouverture. Nous lisons FILE_MODIFY_DATE, puis ouvrons le fichier, apportons des modifications, lisons à nouveau FILE_MODIFY_DATE, comparons avec le précédent et si personne n'a apporté de modifications, fermons le fichier et enregistrons les modifications. Sinon, nous rejetons les modifications... et l'ouvrons à nouveau. Comme ça.
Ce n'est pas si mal, les tâches sont différentes, mais il y a certaines particularités dont il faut tenir compte.
Apparemment, les modifications sont sauvegardées au moment de FileClose, et personne n'en a connaissance jusque-là.
Ce n'est pas un fait.
FileFlushRéinitialise sur disque toutes les données restantes dans le tampon d'E/S du fichier.
Difficile à mettre en place, mais pas impossible. Il suffit de vérifier, avant d'écrire, l'heure du dernier changement avec la même heure à l'ouverture. C'est-à-dire lire FILE_MODIFY_DATE puis ouvrir le fichier, faire des modifications, lire à nouveau FILE_MODIFY_DATE, comparer avec le précédent et si personne n'a fait de modifications, fermer le fichier en sauvegardant les modifications. Sinon, nous rejetons les modifications... et l'ouvrons à nouveau. Comme ça.
C'est à peu près la même chose que le drapeau "occupé" (premier arrivé, premier servi), seulement des fois plus compliqué, mais l'idée est intéressante, j'aime bien, merci.
Ce n'est pas un fait.
FileFlushRéinitialise sur le disque toutes les données restantes dans le tampon d'E/S du fichier.
Je ne suis pas sûr de ce que cela signifie dans le contexte de l'enregistrement de FileClose.