Erreurs, bugs, questions - page 2434

 
fxsaber:

Comment puis-je connaître le nom du fichier à partir de la poignée ?

FileGetString est manquant.

Je ne pense pas que vous puissiez le faire, généralement les handles, descripteurs et autres descripteurs sont des tables virtuelles d'entiers, qui sont liées par l'OS ou l'environnement du programme à des événements physiques spécifiques/pilotes/fenêtres...

J'ai récemment commencé à travailler avec des moitiés en utilisant SB, c'est assez pratique et voici une solution toute faite pour votre cashttps://www.mql5.com/ru/docs/standardlibrary/fileoperations/cfile.

Документация по MQL5: Стандартная библиотека / Файлы / CFile
Документация по MQL5: Стандартная библиотека / Файлы / CFile
  • www.mql5.com
Стандартная библиотека / Файлы / CFile - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
fxsaber:

Comment puis-je connaître le nom du fichier à partir de la poignée ?

FileGetString est manquant.

Pas du tout.
 
Igor Makanu:

Je ne pense pas que vous puissiez le faire, généralement les handles, descripteurs et autres descripteurs sont des tables virtuelles d'entiers qui sont liées par l'OS ou l'environnement du programme à des événements physiques spécifiques/pilotes/fenêtres...

J'utilise la gestion des fichiers avec SB depuis un moment maintenant, c'est assez pratique et voici une solution toute faite pour votre cashttps://www.mql5.com/ru/docs/standardlibrary/fileoperations/cfile.

Il est clair que vous pouvez enregistrer le nom du fichier. Mais il est quand même étrange que vous ne puissiez pas faire les choses de base.

Slava:
Pas du tout.

Ce serait bien si vous pouviez.

 
fxsaber:

Il est clair qu'il est possible d'enregistrer le nom du fichier. Mais il semble toujours étrange que vous ne puissiez pas faire la chose élémentaire.

Je pense qu'il faut se forcer à utiliser des solutions toutes faites, au moins je suis sur ce chemin, ici en 5 minutes j'ai écrit OHLC au fichier

#property copyright "Copyright 2019, IgorM"
#property link      "https://www.mql5.com/ru/users/igorm"
#property version   "1.00"
#property strict
#property  show_inputs
input string FName="tst";
#include <Files\FileTxt.mqh>

CFileTxt *FOut;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   FOut=new CFileTxt();
   string sname=FName+"_"+_Symbol+"_"+EnumToString((ENUM_TIMEFRAMES)_Period)+".csv";
   FOut.Open(sname,FILE_WRITE|FILE_TXT);
   Print("Open file");
   Print("File name = ",FOut.FileName());
   int count=0;
   for(int i=Bars-1;i>=0;i--)
     {
      string s=TimeToStr(Time[i])+";"+DoubleToStr(Open[i],_Digits)+";"+DoubleToStr(High[i],_Digits)+";"+DoubleToStr(Low[i],_Digits)+";"+DoubleToStr(Close[i],_Digits)+"\n";
      FOut.WriteString(s);
      count++;
     }
   Print("Write ",count," bars");
   FOut.Flush();
   FOut.Close();
   delete FOut;
  }

lorsque vous utilisez la classeCFileTxt, vous n'avez pas besoin de vous demander où obtenir les propriétés du fichier - tout est disponible tout au long de l'exécution du programme.

 
Igor Makanu:

Je pense qu'il faut se forcer à utiliser des solutions toutes faites, du moins je suis sur cette voie, voici comment j'ai fait une entrée OHLC dans un fichier en 5 minutes

Vous l'avez fait.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies.

Bugs, bugs, questions

fxsaber, 2019.04.17 14:00

Il est clair que vous pouvez enregistrer le nom du fichier. Mais il est quand même étrange que vous ne puissiez pas faire la chose élémentaire.

 
fxsaber:

Vous l'avez fait.

Oui, je sais, mais il faut essayer de comprendre l'idéologie des développeurs ici - ils ont pas mal de solutions toutes faites en SB,

 
fxsaber:

Il est clair qu'il est possible d'enregistrer le nom du fichier. Mais il semble toujours étrange que vous ne puissiez pas faire la chose élémentaire.

Et ce serait bien.

Pour quoi faire ?

 
Igor Makanu:

Oui, je sais, mais ici, il faut essayer de comprendre l'idéologie des développeurs - ils ont beaucoup de solutions toutes faites en SB,

C'est certainement compréhensible. Mais ce n'est pas ce dont je parlais.

 
Slava:

Pourquoi ?

Je suis en train de déboguer le code de quelqu'un d'autre, qui transfère des handles de certaines méthodes à d'autres fonctions.

Je veux annuler une poignée spécifique, qui est maintenant utilisée dans la ligne d'arrêt - quel est le fichier ? Et c'est vraiment difficile de faire ça.

 
fxsaber:

Je suis en train de déboguer le code de quelqu'un d'autre, qui transfère des handles de certaines méthodes à d'autres fonctions.

Je veux annuler une poignée spécifique, qui est maintenant utilisée dans la ligne d'arrêt - quel est le fichier ? Et c'est vraiment difficile de faire ça.

Désimprimer les poignées au moment de l'ouverture du fichier(généralement dans OnInit ?)

et ensuite, lorsqu'on utilise une poignée, la réimprimer, puis faire correspondre nom = poignée

Un handle est toujours un numéro régulier et il ne change pas pendant que le fichier est ouvert, si je ne me trompe pas, les handles de fichiers ont une numérotation continue 1,2,3... dans l'ordre d'ouverture des fichiers - n'a pas vérifié depuis longtemps

Raison: