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

 
T-G: comment sauter la première ligne de manière programmatique
C'est simple :
FileReadString(ExtCsvHandle);
 
alsu:
C'est simple :
c'est-à-dire comptez simplement, mais ne le mémorisez nulle part, jetez-le comme inutile.
 
alsu:
Dans votre exemple, la seule différence est que les paramètres sont passés à la fonction
Pourquoi alors la fonction dellline supprime-t-elle les lignes portant ces noms dans la première variante, mais pas dans la seconde ?
 
Fox_RM:
Pourquoi alors la fonction dellline supprime-t-elle les lignes portant ces noms dans la première variante, mais pas dans la seconde ?


1) down_line+TimeToStr

2) " downline_"+TimeToStr

dellline(up_line, down_line ) ;

 
Solree:
Il n'y a pas de MT dans mon MT. Il n'y a qu'une seule bibliothèque écrite en MQL (stdlib.mq4). Pouvez-vous nous donner un exemple ?
Tout le monde en a un. Regardez ici : ...\MetaTrader 4\experts\LLSample
 
Zhunko:
Tout le monde en a un. Regardez ici : ...MetaTrader 4\experts\samples\DLLSample
Mauvais endroit. Merci. On dirait que vous avez besoin de Visual C++. Mais peut-être que quelqu'un sait comment construire pour MinGW ? J'ai essayé de compiler et de lier l'exemple entier, il ne le voit pas, il s'en fout...
 
Solree:
Je cherchais au mauvais endroit. Merci. On dirait que ça va nécessiter l'horrible Visual C++. Mais peut-être que quelqu'un sait comment construire sous MinGW ? J'ai essayé de compiler et de lier l'exemple entier, il ne le voit pas, il s'en fout...
Je construis tout dans mingw sous codeblocks sans problème. Quel est exactement le problème ?
 

Veuillez me conseiller, la situation est la suivante, je lis un fichier csv comme ceci

void ReadDate(){
   while(!IsStopped()){
      string dTime = FileReadString(ExtCsvHandle); // читаем строчку 1
      string sValue = FileReadString(ExtCsvHandle); // читаем строчку 2
      Print("Date=",StrToTime(dTime), "Value=",sValue);   
      
   }
}

mais le fichier csv a une en-tête, la première ligne supplémentaire

Time,Value
15.02.2012 00:00:00;Значение1
15.02.2012 00:01:07;Значение2
15.02.2012 00:02:26;Значение3
15.02.2012 00:00:00;Значение1
15.02.2012 00:01:07;Значение2
15.02.2012 00:02:26;Значение3

comment sauter programmatiquement la première ligne, ou supprimer programmatiquement en général lors de la sauvegarde de la valeur, cela gâche tout.

Merci d'avance.

alsu:

C'est simple :

FileReadString(ExtCsvHandle);


Et où dois-je le mettre ? Avant la boucle ? Ça rendrait les choses plus confuses... J'ai juste besoin de sauter l'en-tête.

Time,Value
 
T-G:


Et où dois-je le mettre ? Avant la boucle ? Ça rendrait les choses plus confuses... J'ai juste besoin de sauter l'en-tête.


Vous pouvez le mettre avant la boucle, vous pouvez le mettre dans le corps... Et pourquoi cela vous dérouterait-il, le problème est-il que l'en-tête n'est pas la première ligne et que vous ne savez pas quand il sera rencontré ?
 

Comme ceci, par exemple, le titre sera absent

void ReadDate(){
   FileReadString(ExtCsvHandle); //Пропускаем 'Time'
   FileReadString(ExtCsvHandle); //Пропускаем 'Value'
   while(!IsStopped()){
      string dTime = FileReadString(ExtCsvHandle); // читаем строчку 1
      string sValue = FileReadString(ExtCsvHandle); // читаем строчку 2
      Print("Date=",StrToTime(dTime), "Value=",sValue);   
      
   }
}