[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 350

 
sss2019:


Alors pourquoi, j'utilise la fonction FileReadString, en théorie, soit la chaîne entière dans la variable ou jusqu'au séparateur et le pointeur jusqu'au séparateur de la première devrait être lu.

Tout simplement, montrez-moi un exemple de comment extraire toutes les données entre les séparateurs d'une ligne de fichier csv comme ceci ?

131322608;EURUSD;2;1;0;0;1346149440


Savez-vous seulement comment lire ? Je l'ai décrit en détail ci-dessus.

exemple :FileOpen (nom de fichier,FILE_CSV|FILE_READ, " ;") ;

int FileOpen(string filename, int mode, int delimiter=';')
Ouvre un fichier pour l'entrée et/ou la sortie. Renvoie le descripteur de fichier du fichier ouvert ou -1 en cas d'échec. Appelez GetLastError() pour obtenir plus d'informations sur l'erreur.
Remarque : les fichiers ne peuvent être ouverts que dans le dossier terminal_directory\experts\files(terminal_directory\tester\files en cas de test expert) ou ses sous-dossiers.
Les modes FILE_BIN et FILE_CSV ne peuvent pas être utilisés simultanément.
Si FILE_WRITE n'est pas combiné avec FILE_READ, un fichier de longueur nulle sera ouvert. Même s'il y avait des données dans le fichier avant son ouverture, elles seront détruites. Si des données doivent être ajoutées à un fichier existant, celui-ci doit être ouvert en utilisant la combinaison FILE_READ | FILE_WRITE.
Si FILE_READ n'est pas combiné avec FILE_WRITE, le fichier ne sera ouvert que s'il existe déjà. Si le fichier n'existe pas, il peut être créé en utilisant FILE_WRITE.
Un maximum de 32 fichiers peuvent être ouverts en même temps dans un même exécutable. Les descripteurs des fichiers ouverts dans un module ne peuvent pas être transmis à d'autres modules (bibliothèques).
Paramètres :
nom de fichier - Nom du fichier - nom du fichier.
mode - Méthode d'ouverture. Il peut s'agir d'une valeur unique ou d'une combinaison de valeurs : FILE_BIN, FILE_CSV, FILE_READ, FILE_WRITE.
délimiteur - Un caractère de délimitation pour les fichiers csv. Par défaut, il s'agit de ';'.

 
FAQ:


Ne vous faites pas votre propre opinion.

FileReadString() lit jusqu'au délimiteur (si spécifié). Si aucun délimiteur n'est spécifié, ou si aucun délimiteur existant n'est spécifié, FileReadString() lit jusqu'à la fin de la chaîne (le caractère de transfert de soins). Par conséquent, dans l'exemple ci-dessus ,FileFlush() spécifie un décalage de longueur de chaîne .

Dans ce cas, StrToInteger() sélectionne la première valeur numérique rencontrée dans la chaîne et la convertit en type [int].


Il n'y a aucun doute qu'il se lit avant le séparateur. Mais le pointeur de fichier est à la fin de la ligne. Je n'ai pas pris la peine d'écrire un scénario. C'est pourquoi je l'ai écrit comme ça.

//+------------------------------------------------------------------+
//|                                                          111.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   int fileid = FileOpen("File.csv",FILE_CSV|FILE_READ);
    int n1, n2;
      
      string ticket, ticket1;
      
      FileSeek(fileid,0,SEEK_SET);
      
      ticket = FileReadString(fileid);
      Print(ticket," ",FileTell(fileid));
      ticket1= FileReadString(fileid);
      Print(ticket1," ",FileTell(fileid));
      n1= FileReadNumber(fileid);
      Print(n1," ",FileTell(fileid));      
      n2= FileReadNumber(fileid);
      Print(n2," ",FileTell(fileid)); 
//----
   return(0);
  }
//+------------------------------------------------------------------+

Le séparateur, comme vous pouvez le voir, n'est pas spécifié.

06:54:18 111 EURUSD,H1 : chargé avec succès
06:54:18 111 EURUSD,H1 : 131322608 37
06:54:18 111 EURUSD,H1 : EURUSD 37
06:54:18 111 EURUSD,H1 : 2 37
06:54:18 111 EURUSD,H1 : 1 37
06:54:18 111 EURUSD,h1 : raison uninit 0
06:54:18 111 EURUSD,H1 : supprimé

 
Mislaid:


06:54:18 111 EURUSD,H1 : 131322608 37


Dans ce cas, StrToInteger() met en évidence la première valeur numérique rencontrée dans la chaîne, et la convertit en type [int].
 

Bonjour, il y a un objet de type OBJ_TREND (c'est à dire une ligne de tendance) construit en utilisant ObjectCreate.

Question : comment puis-je obtenir la valeur NUMÉRO que prend cette ligne de tendance à n'importe quel moment, par exemple au moment actuel (Temps[0])

 
ikatsko:

Bonjour, il y a un objet de type OBJ_TREND (c'est à dire une ligne de tendance) construit en utilisant ObjectCreate.

Question : comment puis-je obtenir la valeur NUMÉRO que prend cette ligne de tendance à n'importe quel moment, par exemple au moment actuel (Temps[0])


ObjectGetValueByShift()
 
drknn:

ObjectGetValueByShift()

Merci pour votre réponse rapide ?

 
Comment utiliser la fonction SendMail pour envoyer une capture d'écran réalisée avec la fonction WindowScreenshot?
 
Non, le fichier peut être envoyé au FTP.
 
FAQ:
Non, le fichier peut être envoyé par ftp.

Très bien, alors.

Alors je vais l'aborder sous un autre angle.

Est-il possible de faire en sorte qu'un courriel entrant affiche des images provenant du FTP ? (c'est-à-dire que la photo n'est pas une pièce jointe et que l'e-mail ne contiendrait que des liens vers le FTP).

 

Gourous, une pointe de la chouette :

L'essentiel est le suivant : le bénéfice d'une transaction (pas encore fermée) commence à diminuer (j'ai ouvert la transaction). À la réalisation de X % établi par moi de la somme de la transaction - le robot ferme la transaction. En chiffres donc approximativement : 1 $ (déjà avoir de la transaction) le profit augmente. Le Conseil a mis 80% d'arrêt. Profit 1.2$ (avec un stop de 80%). Le marché s'est retourné et à (1,2*80%= 0,96) la chouette a fermé la transaction.

Exactement en %, breakeven owls j'ai trouvé des points là ) :

Merci.