Écriture dans le fichier sur une nouvelle ligne - page 4

 

Il semble possible d'écrire par-dessus les lignes, ou du moins d'écrire une nouvelle ligne pour remplacer la première sans trop de difficultés.


//Открываем файл 
   int h1=FileOpen("Copy.txt",FILE_WRITE | FILE_READ,";");
   FileSeek(h1, 0, SEEK_SET);
   FileWrite(h1,Symbol(),OP_BUYSTOP,OrderLots()*Koof,OrderStopLoss(),Slippage,0,0,IntegerToString(OrderTicket()));
   FileClose(h1);
// закрываем файл
 
Maintenant, vous avez des options, c'est à vous de décider comment vous voulez procéder.
 
EfremovSergey:

Il semble possible d'écrire sur le dessus des lignes, ou du moins d'écrire une nouvelle ligne à la place de la première sans difficultés particulières.


C'est génial ! À la rigueur, à la rigueur...

Si vous devez écrire quelque chose, vous devez l'écrire. Où, quand, comment, pourquoi et à qui, nous n'en avons rien à faire. Notre travail consiste à l'écrire, et ceux qui ont besoin de le lire, qu'ils le fassent eux-mêmes...

 
Maxim Kuznetsov:

C'est génial ! Bien vu, bien vu...

s'il y a quelque chose à écrire, il faut l'écrire. Où, quand, comment, pourquoi et qui, on s'en fout. Notre travail consiste à l'écrire, et ceux qui ont besoin de le lire - qu'ils le fassent eux-mêmes...

Eh bien, oui, ce n'est pas vraiment une option...

Vous pouvez écrire de nouvelles informations ou simplement mettre à la poubelle une ligne, mais pour une raison quelconque, vous ne pouvez pas la supprimer du tout... étrange histoire...

 

J'ai trouvé comment travailler avec le fichier, merci beaucoup et merci beaucoup.

Une telle question, un peu hors sujet.

Suite à la lecture de la ligne

string s=FileReadString(h)

nous obtenons la valeur de s qui implique les données pour ouvrir l'ordre, par exemple EURUSD,5,0.02,1.17808,70,0,0,302090516

Est-il possible de substituer cette valeur dans son ensemble dans l'opération OrderSend sans extraire chaque partie descriptive constitutive de la commande à ouvrir séparément ?

OrderSend(s)

Bien sûr que ça ne marche pas

OrderSend - Торговые функции - Справочник MQL4
OrderSend - Торговые функции - Справочник MQL4
  • docs.mql4.com
[in]  Цвет открывающей стрелки на графике. Если параметр отсутствует или его значение равно CLR_NONE, то открывающая стрелка не отображается на графике. При открытии рыночного ордера (OP_SELL или OP_BUY) в качестве цены открытия могут использоваться только самые последние цены Bid (для продажи) или Ask (для покупки). Если операция проводится по...
 
La fonction prend les valeurs de plusieurs variables de différents types, et vous avez une chaîne de caractères.
 
EfremovSergey:

À mon avis, si vous ne vous débarrassez pas des informations qui ont déjà été traitées, vous devrez consacrer des ressources à leur réanalyse.

L'information, si elle se trouve à l'intérieur d'une seule EA, n'a pas besoin d'être écrite dans un fichier si elle n'a pas besoin d'être lue elle-même. Si elle vient de l'extérieur, il faut écrire un fichier vide dans le fichier après l'avoir lu.

 
Aleksei Stepanenko:
La fonction prend les valeurs de plusieurs variables de différents types, et vous avez une chaîne de caractères.

C'est la question... comment créer "sans douleur" une énumération de variables à partir d'une chaîne de caractères. L'utilisation de la fonction StringSubstr donne une solution très peu polyvalente. StringSplit ne comprend pas bien comment ça marche... Peut-être que certaines conversions peuvent être faites ?

 
Valeriy Yastremskiy:

L'information, si elle se trouve à l'intérieur d'une EA, n'a pas besoin d'être écrite dans le fichier, si elle n'a pas besoin d'être lue elle-même. Si elle provient de l'extérieur, alors après l'avoir lue, écrivez un fichier vide dans le fichier.

Si nous voulons créer un EA séparé qui ouvrira des ordres pour n'importe quelle paire et que l'EA d'une paire particulière intercepte déjà l'ordre ouvert dans le contrôle, alors cela fonctionnera probablement, mais si chaque EA d'une paire particulière doit travailler avec le fichier individuellement, alors la synchronisation de cette manière sera impossible.

 

Permettez-moi d'essayer à nouveau de vous faire comprendre l'intérêt d'utiliser un tableau.

struct MyData
   {
   string   symbol;              // символ
   int      operation;           // торговая операция
   double   lot;                 // количество лотов
   double   stoploss;            // stop loss
   double   takeprofit;          // take profit
   int      magic;               // идентификатор
   } my[];

for(int i=0; i<ArraySize(my); i++)
   {
   if(my[i].magic==MagicNumber)
      {
      eTicket=OrderSend(my[i].symbol,my[i].operation,my[i].lot,ePrice,(int)SymbolInfoInteger(my[i].symbol,SYMBOL_SPREAD),
			my[i].stoploss,my[i].takeprofit,NULL,my[i].magic,0,eColor);
      }
   }

J'ai déjà écrit comment enregistrer ce tableau dans un fichier.

Ou analyser votre chaîne de caractères.

Raison: