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
Demain, j'essaierai de faire un script qui reproduit entièrement ce problème.
Pour que les gens ne disent pas que je fais de la "fiction" ici).
Merci beaucoup à tous pour votre volonté d'aider et votre assistance dans la résolution de ce problème. ))
Il y avait une erreur flottante comme celle-ci (la séquence est décrite et un fichier .ex5 de bibliothèque a été joint). Il est difficile de documenter ce genre de chose
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Bugs, bugs, questions
A100, 2016.08.04 00:05
Erreur d'ouverture du fichier par l'Expert Advisor. Et si par exemple.
1. supprimer "certains codes non pertinents" (voir ci-dessous)
2. ou supprimer ::Sleep(1000)
il n'y a pas d'erreur
Séquence d'actions :
1. Créez un nouveau profil (par exemple, "Test").
2. ouvrez deux nouveaux graphiques en attachant le conseiller expert Test.ex5 à chacun d'eux (voir image)
4. Sélectionnez un autre profil existant
5. Sélectionnez le profil "Test".
résultat :
Alors que Test001.mq5 ressemble à ceci :
J'ai maintenant essayé avec le fichier de bibliothèque joint : le résultat est le même (le fichier de test est ouvert séparément par les deux EA, et s'il est ouvert simultanément, l'une des EA signale une erreur).
2017.08.28 23:40:43.623 Test (EURUSD,M15) EURUSD,M15, result=OK
2017.08.28 23:40:52.389 Test (GBPUSD,M15) GBPUSD,M15, result=OK
2017.08.28 23:41:14.387 Test (GBPUSD,M15) GBPUSD,M15, result=Error(5004) : File was not opened : test.txt
2017.08.28 23:41:15.484 Test (EURUSD,M15) EURUSD,M15, result=OK
J'ai trouvé le numéro de demande #1530548, mais aucun commentaire - il se peut qu'il ait déjà été corrigé. Si ce n'est pas le cas, veuillez réexaminer la situation
Реter Konow:
Lefichier est ouvert par mon application (navigateur de fichiers) pour être écrasé dans un autre dossier.
Lorsque le fichier est ouvert à la lecture , nous obtenons l'identifiant du fichier.
L'étiquette est Konow:
Après l'écrasement, je dois fermer le fichier mais je ne peux pas (pas de poignée) et j'efface simplement le fichier.
Pour écrire dans un autre fichier, j'ai besoin du handle de cet autre fichier, il est donc logique de le stocker dans une autre variable. Après avoir écrit dans un nouveau fichier, les handles des deux fichiers sont stockés dans deux variables, et les deux fichiers sont fermés en utilisant ces handles.
Tag Konow:
Il n'y a pas de poignée car le fichier a été créé on ne sait pas quand et par qui.
Si le fichier a été créé par John Doe et John Doe, il est TRÈS probable qu'il ne soit utilisé par aucune application. Si vous ouvrez le fichier dans un but quelconque, vous disposez alors déjà d'un handle obtenu par la fonction FileOpen et vous devez le fermer avant d'effacer le dossier.
Tag Konow:
Cela dit, le fichier existe dans le dossier Files et peut être copié dans un autre dossier, puis effacé.
Lors de la copie d'un fichier d'un programme accessible à un programme mql, le handle du fichier est totalement inutile.
Reg Konow:
Mais vous ne pouvez pas fermer ce fichier après l'avoir copié. Il n'y a pas de poignée.Après avoir copié le fichier, le fichier n'est pas ouvert et il n'est pas nécessaire de le fermer.
Tag Konow:
C'est probablement la raison pour laquelle l'effacement supplémentaire de FolderClean() avec des fichiers effacés, ne fonctionne pas.
C'est une erreur absolue.
RetagKonow:
Question : Comment puis-je obtenir un handle sur ce fichier dans un programme MQL ?D'après ce qui précède, cette question n'a pas de sens. Un handle de fichier n'est obtenu que lorsqu'un fichier est ouvert pour déterminer où le pointeur de fichier FileTell et FileSeek doit être lu ou écrit, vidé de force sur le disque par FileFlush et, bien sûr, fermé afin de libérer le fichier pour que d'autres applications puissent y travailler.
C'est par hasard que j'ai découvert quel est votre problème :
Pendant une expérience, un dossier est ouvert dans l'Explorateur ou un autre gestionnaire de fichiers pour surveiller la création et la suppression d'un fichier. Et une fois que le fichier est supprimé, le dossier reste occupé et ne peut pas être supprimé. Le résultat est
Mais le fait qu'après une tentative infructueuse de suppression d'un dossier, ce dossier reste occupé, hélas, est un fait. Cela va maintenant faire l'objet d'une demande auprès du SD.
ps ; Hélas, j'ai aussi fait une erreur pendant l'expérience. Après avoir écrit dans le fichier, réinitialiser les données sur le disque, a essayé de l'ouvrir avec le bloc-notes, mais a obtenu en réponse ... (figure) pour annuler la tentative d'ouvrir oublié et c'est ce qui a gardé le dossier et n'a pas laissé être supprimé.
Résumé : aucun problème avec les fichiers mql.
Alexey Viktorov:
Tout à fait par hasard, j'ai découvert quel est votre problème :
Pendant une expérience, un dossier est ouvert dans l'Explorateur ou un autre gestionnaire de fichiers pour surveiller la création et la suppression d'un fichier. Et après avoir supprimé le fichier, le dossier reste occupé et ne peut pas être supprimé. Le résultat est
Mais le fait qu'après une tentative infructueuse de suppression d'un dossier, ce dossier reste occupé, hélas, est un fait. Ceci sera maintenant rapporté au SR.
J'ai rencontré ce comportement dans des circonstances complètement différentes - également en gardant un dossier ouvert pour la suppression, ce qui fait que les programmes/scripts/SVN etc. ne parviennent pas à supprimer ce dossier.
Et le remède est toujours le même : démolir manuellement ce dossier. Il ne s'agit donc pas d'un problème de terminal ou d'éditeur.
J'ai rencontré ce comportement dans des circonstances complètement différentes - également en gardant un dossier ouvert pour la suppression, avec pour résultat que les programmes/scripts/SVN etc. ne pouvaient pas supprimer le dossier.
Et il est toujours traité de la même manière - en détruisant manuellement le dossier en question. Il ne s'agit donc pas d'un problème de terminal ou d'éditeur.
J'ai complété mon post un peu plus tard.
Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading
Ne pas supprimer un dossier s'il contient des fichiers non fermés
Alexey Viktorov, 2017.08.29 08:55
ps ; Hélas, je me suis aussi trompé pendant l'expérience. Après avoir écrit dans le fichier, réinitialisé les données sur le disque, j'ai essayé de l'ouvrir avec le bloc-notes, mais j'ai obtenu en réponse ...(figure) pour annuler la tentative d'ouverture que j'ai oublié et c'est ce qui a gardé le dossier et n'a pas permis de le supprimer.
Résumé : aucun problème avec les fichiers mql.
Il est étrange que vous ayez cité mon message sans cet addendum.
J'ai complété mon post un peu plus tard.
Il est étrange que vous ayez cité mon message sans cet ajout.
Juste pour que vous soyez préparé à la réponse du SD.
Juste pour que vous soyez préparé à la réponse de la DS.
J'ai rencontré ce comportement dans des circonstances complètement différentes - également en gardant un dossier ouvert pour la suppression, ce qui fait que les programmes/scripts/SVN etc. ne peuvent pas supprimer le dossier.
Et le remède est toujours le même : démolir manuellement ce dossier. Il ne s'agit donc pas d'un problème de terminal ou d'éditeur.
Et le fait d'ouvrir un dossier dans un gestionnaire de fichiers, PAS un FICHIER, n'affecte pas sa suppression par mql.
1. Lors de l'ouverture d' un fichier pour la lecture , il faut obtenir l'identifiant du fichier.
2. Pour écrire dans un autre fichier, nous avons besoin d'un autre identifiant de fichier, il est donc raisonnable de le stocker dans une autre variable. Après avoir écrit dans un nouveau fichier, les handles des deux fichiers sont stockés dans deux variables, et les deux fichiers sont fermés en fonction de ces handles.
3. si le fichier a été créé à une date inconnue et par une personne inconnue, il y a une TRÈS bonne chance que le fichier ne soit pas occupé par une application. Si vous ouvrez le fichier dans un but quelconque, vous avez déjà un handle FileOpen et devez le fermer avant de vider le dossier.
4. Lors de la copie d'un fichier d'un programme disponible vers le mql, le handle du fichier est absolument inutile.
5. Une fois qu'un fichier est copié, ce fichier n'est plus ouvert et il n'est pas nécessaire de le fermer.
1 La poignée n'est nécessaire que pour la fonction FileClose. Je n'ouvre pas le fichier. Il a été créé avant moi. Je ne fais que le copier et l'effacer. Je ne peux pas le fermer car il n'y a pas de poignée.
2. Pour copier (FileCopy), pour déplacer (FileMove), l'identifiant du fichier n'est pas nécessaire. Veuillez vous référer à la documentation.
3) Si j'ouvre un fichier créé par quelqu'un d'autre à l'aide de la fonction FileOpen, je n'obtiendrai pas son identifiant. On ne sait pas du tout quelle poignée je vais recevoir. Il peut s'agir du sien ou d'un tout autre. J'ai essayé d'obtenir le handle du fichier de quelqu'un d'autre pour pouvoir le fermer FileClose après l'opération de copie. Ça n'a pas marché.
4. Lors de la copie, la poignée n'est pas nécessaire. Il est copié sans aucun problème. Mais le fichier est automatiquement ouvert pour être copié. De plus, je ne peux pas le fermer avec FileClose car il n'y a pas de poignée. C'est probablement la raison pour laquelle FolderClean ne fonctionne pas après avoir effacé les fichiers copiés.
5. Comment savez-vous que le fichier n'est pas ouvert après la copie ? Il n'a pas été explicitement ouvert par la fonction FileOpen, mais il a été copié avec, ce qui signifie qu'il est ouvert. Il reste donc ouvert après la copie et même après l'effacement. Probablement.