[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 608

 
T-G: wie man programmatisch die erste Zeile überspringt
Das ist ganz einfach:
FileReadString(ExtCsvHandle);
 
alsu:
Das ist ganz einfach:
d.h. einfach zählen, aber nirgends einprägen, als unnötig verwerfen.
 
alsu:
In Ihrem Beispiel besteht der einzige Unterschied darin, dass die Parameter an die Funktion übergeben werden
Warum löscht die Funktion dellline dann Zeilen mit diesen Namen in der ersten Variante, aber nicht in der zweiten?
 
Fox_RM:
Warum löscht die Funktion dellline dann Zeilen mit diesen Namen in der ersten Variante, aber nicht in der zweiten?


1) down_line+TimeToStr

2) " downline_"+TimeToStr

dellline(up_line, down_line );

 
Solree:
In meinem MT gibt es kein MT. Es gibt nur 1 in MQL geschriebene Bibliothek (stdlib.mq4). Können Sie hier ein Beispiel nennen?
Jeder hat einen. Siehe hier: ...\MetaTrader 4\experts\samples\DLLSample
 
Zhunko:
Jeder hat einen. Siehe hier: ...MetaTrader 4\experts\samples\DLLSample
Falscher Ort. Ich danke Ihnen. Sieht aus, als bräuchten Sie ein gottverdammtes Visual C++. Aber vielleicht weiß jemand, wie man für MinGW baut? Versucht, das ganze Beispiel zu kompilieren und zu verlinken, sieht es nicht, kümmert sich nicht darum...
 
Solree:
Ich habe an der falschen Stelle gesucht. Ich danke Ihnen. Sieht aus, als bräuchte man das grässliche Visual C++. Aber vielleicht weiß jemand, wie man unter MinGW bauen kann? Versucht, das ganze Beispiel zu kompilieren und zu verlinken, sieht es nicht, kümmert sich nicht darum...
Ich baue alles in mingw unter Codeblocks problemlos. Was genau ist das Problem?
 

Bitte beraten Sie die Situation ist wie folgt, lese ich eine csv-Datei wie folgt

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

aber die csv-Datei hat einen Header, die erste zusätzliche Zeile

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

wie man die erste Zeile programmatisch überspringt oder generell beim Speichern eines Wertes programmatisch löscht, verdirbt es alles.

Vielen Dank im Voraus.

alsu:

Das ist ganz einfach:

FileReadString(ExtCsvHandle);


Und wo soll ich sie einfügen? Vor der Schleife? Das würde alles durcheinander bringen... Ich muss nur die Überschrift weglassen

Time,Value
 
T-G:


Und wo soll ich sie einfügen? Vor der Schleife? Das würde alles durcheinander bringen... Ich muss nur die Überschrift weglassen


Sie können es vor der Schleife einfügen, Sie können es in den Körper einfügen... Und warum sollte es Sie verwirren, ist das Problem, dass die Kopfzeile nicht die erste Zeile ist und Sie nicht wissen, wann sie auftauchen wird?
 

So wird zum Beispiel die Überschrift fehlen

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);   
      
   }
}