Fehler, Irrtümer, Fragen - Seite 898

 

lazarev-d-m:

Yedelkin:

sergeev: Hat die Datei Zeilen?

FILE_LINE_END

Anzeige desZeilenendes erhalten

Ich mehr oder weniger herausgefunden, sieht das Terminal csv-Datei nicht als eine Tabelle, sondern als eine gewöhnliche Datei, wo alle Variablen aufgereiht sind und durch ein Trennzeichen getrennt, und in ihm zu orientieren, wie in einer Tabelle, schrieb ich ein kleines Beispiel-Skript mit csv als mit einer Tabelle zu arbeiten, wie seltsam es klingen mag, heute / morgen werde ich in CodeBase werfen, ich denke, viele werden interessant sein

lazarev-d-m, meine Nachricht ist nicht für Sie bestimmt. Es ist für Sergejew persönlich.
 
Yedelkin:

FILE_LINE_END

Zeilenende-Indikator holen

Ich sage Ihnen gar nichts, Sie sind schon schlau.

und Sie wissen, dass die Datei Steuerzeichen in ihrer Zeilenzuordnung enthält, so dass einige Betrachter ihres Inhalts sie nach allgemein anerkannten Regeln anzeigen werden.

Управляющие символы — Википедия
  • ru.wikipedia.org
Управля́ющие си́мволы — элементы данной кодировки, которым не приписано графическое представление, но которые используются для управления устройствами, организации передачи данных и других целей. Сейчас для этих целей применяются форматы файлов, языки управления устройствами (такие как Postscript) и сетевые протоколы. Поэтому многие...
 
lazarev-d-m:

Ich habe es mehr oder weniger herausgefunden, das Terminal sieht die csv-Datei nicht als Tabelle, sondern als eine normale Datei, in der alle Variablen aneinandergereiht und durch ein Trennzeichen getrennt sind

Es sieht nicht nur csv so, es sieht alles als Datei.
 

lazarev-d-m:

müssen Sie sich einen Mechanismus für die Suche nach Zeichenketten einfallen lassen,

Hat die Datei Zeilen? Wie markiert man eine neue Zeile? (in Anspielung auf ein besonderes Symbol :)

Stellen Sie sich vor, die Datei sei ein eindimensionales Feld von Zeichen.

Wie finden Sie eine "neue Zeile" in der Matrix?

 

 

FILE_LINE_END

Zeilenendezeichen abrufen

sergeev: Ich werde Ihnen nichts sagen. Sie sind ohnehin schon schlau genug. Sie wissen, dass eine Datei Steuerzeichen in ihrer linearen Darstellung hat. für einige Betrachter, um ihren Inhalt nach akzeptierten Regeln anzuzeigen.
:) Gehen wir davon aus, dass die Antworten auf die Fragen "Was ist eine neue Zeile in einer Datei? Hat eine Datei Zeilen?" Sie haben sie. Diese Antwort wurde von Ihnen nicht erwartet.
 
Yedelkin:
:) Gehen wir davon aus, dass die Antworten auf die Fragen "Was ist eine neue Zeile in der Datei ? Sie haben es verstanden. Du sollst keine Antwort bekommen.

es geht um die verwendeten Konzepte und die Wahrnehmung dieser Konzepte.

Was ist eine"neue Zeile" in der Datei? Das versuche ich von lazarev-d-m herauszufinden. Wenn ich auf eine Antwort warte, werde ich das Konzept gegebenenfalls korrigieren und richtig erklären. Und dann werde ich auf die Lösung des Problems hinweisen.

Ich weiß zwar nicht, was sich lazarev-d-m vorstellt, wenn er nach einem "Zeilenumbruch" fragt, aber ich kann auch keine Antwort darauf geben, wie man ihn findet. Er kennt FileSeek und FileIsLineEnding und FileRead. Aber er scheint nicht zu wissen, wozu sie da sind.

Es ist klar, dass man in seinem Fall ein Zeichen nur durch Suchen finden kann. Aber ob er versteht, dass die neue Zeichenkette nur ein Zeichen ist - ich weiß es nicht.

 
sergeevвсе дело в Ich versuche, mit Hilfe von lazarev-d-m herauszufinden, was eine"neue Zeichenfolge" in einer Datei ist. Wenn ich eine Antwort erwarte, werde ich das Konzept korrigieren und richtig erklären. Unterdessen weiß ich nicht, woran lazarev-d-m denkt, wenn er nach einem "Zeilenumbruch" fragt. Er kennt FileSeek und FileIsLineEnding und FileRead. Aber es scheint, als wüsste er nicht, wofür sie da sind. Es ist klar, dass man in seinem Fall einige Zeichen nur durch Suchen finden kann.

Der Punkt ist,dass dieses Forum ein Forum für die MQL5-Gemeinschaft ist. Und MQL5 impliziert einen solchen Begriff wie "Zeilenendezeichen in einer Datei":

FILE_LINE_END.

Abrufen der End-of-Line-Flags

Daher ist die Frage von Herrn Lazarev absolut richtig. Das ist innerhalb der MQL5-Gemeinschaft absolut korrekt.

 
Yedelkin:

Der Punkt ist,dass dieses Forum ein Forum für die MQL5-Gemeinschaft ist. Und die Sprache MQL5 impliziert einen solchen Begriff wie "Zeilenendezeichen in einer Datei":

Frage: Welche Zahlen lassen sich durch zwei teilen?

Die Antwort ist alles.

Moral - nicht zu verwechseln das Ende und was Sie brauchen lazarev-d-m

 
sergeev: Frage: Welche Zahlen sind durch zwei teilbar? Die Antwort ist alles. Moral - verwechseln Sie nicht das Ende mit dem richtigen lazarev-d-m
Ja. Die Antwort auf Ihre Frage "Hat eine Datei Zeichenketten?" Sie haben es bereits. Jetzt vergleichen Sie das Ende und das, was Lazarev braucht. :)
 
sergeev:

Frage: Können Sie mir sagen, welche Zahlen durch zwei teilbar sind?

Die Antwort ist alles.

Moral - nicht zu verwechseln das Ende und was Sie brauchen lazarev-d-m

Ich verstehe, dass es Möglichkeiten gibt, eine einzelne Zeile zu identifizieren, aber keinen separaten Befehl, um darauf zuzugreifen. Sie müssen die Anzahl der Zeichen in den Zeilentrennern neu berechnen, um die richtige Zeichenfolge zu erhalten (wenn Sie die "Anzahl" der Zeilen kennen).

Oder meine Variante, die Datei Zeile für Zeile zu scannen, was auch nicht sehr bequem ist, vor allem bei großen Dateien, wo es hunderte von Zeilen sein können, und wenn man dann plötzlich im Tester darauf stößt, dann ist das generell schlimm.

So habe ich es gemacht, es funktioniert nicht richtig, ich werde es reparieren, wenn ich Zeit habe

MqlDateTime mqldt;
string qwerty="EURUSD";
int filehandle;

void OnStart()
  {
   filehandle=FileOpen("News.csv",FILE_READ|FILE_CSV|FILE_ANSI,';');
   uint column1=FileReadInteger(filehandle);//Code
   string column2=FileReadString(filehandle);//Symbol
   uint column3=FileReadInteger(filehandle);//Year
   uint column4=FileReadInteger(filehandle);//Month
   uint column5=FileReadInteger(filehandle);//Day
   uint column6=FileReadInteger(filehandle);//Hour
   uint column7=FileReadInteger(filehandle);//Minute
   while(column2!=qwerty&&column3!=mqldt.year&&column4!=mqldt.mon&&column5!=mqldt.day&&column6!=mqldt.hour)
     {
   column1=FileReadString(filehandle);//Code
   column2=FileReadString(filehandle);//Symbol
   column3=FileReadInteger(filehandle);//Year
   column4=FileReadInteger(filehandle);//Month
   column5=FileReadInteger(filehandle);//Day
   column6=FileReadInteger(filehandle);//Hour
   column7=FileReadInteger(filehandle);//Minute
     }
   Alert("Искомое находится в ",column1,"-й строчке");
  }
Jetzt gibt es immer Spalte1=Code zurück, während es die Nummer der Zeile zurückgeben sollte, die die Stunde mit der aktuellen Zeit übereinstimmt, ich denke, es ist klar aus dem Code