Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 1116
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Gute Zeit, wie kann man eine neue Zeile in die fertige Datei.csv einfügen, mit einer Verschiebung zur 1. Zeile - wenn möglich? Oder auf eine andere Weise, aber ohne Neuberechnung/Wiederverwendung der vorhandenen Daten. Es sei denn, es ist erlaubt, Spalten- und Zeilennamen zu aktualisieren
{
int handle= FileOpen(fileName,FILE_CSV|FILE_WRITE," "),x=0,y=0;
Entfernen Sie FILE_CSV, verwenden Sie stattdessen FILE_ANSI, wenn Sie dasFormat"\n\t" verwenden usw.
Entfernen Sie FILE_CSV, verwenden Sie stattdessen FILE_ANSI, wenn Sie "\n\t" usw.verwenden.
Hallo, die Aufgabe ist es, ein zweidimensionales Array im BIN-Format zu überschreiben, erkennt die Funktion ein zweidimensionales Array als Eingabe?
FileWriteArray
Natürlich wird es sich zweidimensional lesen. Entschuldigung, nicht böse gemeint... Wäre es nicht einfacher, einfach ein 2x2-Element-Testfeld zu schreiben, es zu lesen und zu sehen?
NULL leere Werte werden in die Datei geschrieben.arrayZ ist zweidimensional
//| Запись n элементов массива в файл |
//+------------------------------------------------------------------+
void WriteData(const int n)
{
//--- откроем файл
ResetLastError();
int handle=FileOpen(path,FILE_READ|FILE_WRITE|FILE_BIN);
if(handle!=INVALID_HANDLE)
{
//--- запишем данные массива в конец файла
FileSeek(handle,0,SEEK_END);
FileWriteArray(handle,arrayZ,0,n);
//--- закрываем файл
FileClose(handle);
}
else
Print("Failed to open the file, error ",GetLastError());
}
NULL leere Werte werden in die Datei geschrieben.arrayZ ist zweidimensional
//| Запись n элементов массива в файл |
//+------------------------------------------------------------------+
void WriteData(const int n)
{
//--- откроем файл
ResetLastError();
int handle=FileOpen(path,FILE_READ|FILE_WRITE|FILE_BIN);
if(handle!=INVALID_HANDLE)
{
//--- запишем данные массива в конец файла
FileSeek(handle,0,SEEK_END);
FileWriteArray(handle,arrayZ,0,n);
//--- закрываем файл
FileClose(handle);
}
else
Print("Failed to open the file, error ",GetLastError());
}
Ich bin heute zu faul und habe keine Zeit... In der Dokumentation, in die Sie diese Funktion kopiert haben, wird sogar ein Array von Strukturen angegeben. Funktioniert das gesamte in der Dokumentation angegebene Beispiel, wenn Sie es nicht ändern? Überprüfen Sie es selbst, wenn es nicht funktioniert, müssen Sie auf die CD schreiben.
Dies sind Serialisierungsfunktionen. Wenn Sie die Datei in einem textlesbaren Format öffnen möchten, schreiben Sie die Zeichenfolge in die Datei.
string s = StringFormat("erste Zeile: %s\n", first);
s += StringFormat("zweite Zeile: %s\n", zweite);
s += StringFormat("Dritte Zeile: %s\n", dritte);
FileWrite(s);
und so weiter und so fort.
Um FileRead zu lesen und jede Zeile zu parsen (man muss ein bisschen herumspielen, aber das muss man, wenn man die Lesbarkeit will).
Wie Kinder, meine Güte. Sie erwarten von einem Funky-Weihnachtswunder, dass es alles schön macht, alles auffüllt und formatiert )))).
Generell: Frohe Weihnachten für alle, viel Glück ))))
Verwenden Sie die Scharfmacher FileWriteArray und FileReadArray nicht für Zwecke, für die sie nicht vorgesehen sind.
Dies sind Serialisierungsfunktionen. Wenn Sie die Datei in einem textlesbaren Format öffnen möchten, schreiben Sie die Zeichenfolge in die Datei.
string s = StringFormat("erste Zeile: %s\n", first);
s += StringFormat("zweite Zeile: %s\n", zweite);
s += StringFormat("Dritte Zeile: %s\n", dritte);
FileWrite(s);
und so weiter und so fort.
Um FileRead zu lesen und jede Zeile zu parsen (man muss ein bisschen herumspielen, aber das muss man, wenn man die Lesbarkeit will).
Wie Kinder, meine Güte. Sie erwarten von einem Funky-Weihnachtswunder, dass es alles schön macht, alles auffüllt und formatiert )))).
Im Allgemeinen wünsche ich allen )))) frohe Weihnachten und schöne Feiertage.
Können Sie mir sagen, ob es möglich ist, den Import eines zweidimensionalen Arrays aus csv. zu umgehen, indem Sie ein dreidimensionales (oder zweidimensionales) Array aus dem Indikator in den EA extrahieren?
C BerücksichtigtFileReadDouble ein zweidimensionales Array, wenn ja, wie?
Welche Operation sollte im Allgemeinen verwendet werden, um eine csv-Matrix in ein Array zu konvertieren?
Generell verstehe ich nicht, wie zum Beispiel, nehmen wir ein Beispiel
//--- прочитаем данные из файла
for(int i=0;i<size;i++)
{
time_buff[i]=(datetime)FileReadDouble(file_handle);
ma_buff[i]=FileReadDouble(file_handle);
}
so schreiben Sie die gleichen Daten in die Arraystime_buff[i]undma_buff[i]
Beispiel von https://www.mql5.com/ru/docs/files/filereaddouble
Und wenn ich ein zweidimensionales Array habe, wie kann ich die Aufzählung anordnen.
Wenn ichFileReadString verwende, muss ich die Länge der Zeichenkette angeben, ich muss die Anzahl der Ziffern in der Zeichenkette kennen, nicht die Zellen?
Anscheinend sollte ichFileReadNumber verwenden, aber es ist zu seltsam
Können Sie mir sagen, ob es möglich ist, den Import eines zweidimensionalen Arrays aus csv. zu umgehen, indem Sie ein dreidimensionales (oder zweidimensionales) Array aus dem Indikator in den EA extrahieren?
C BerücksichtigtFileReadDouble ein zweidimensionales Array, wenn ja, wie?
Welche Operation sollte im Allgemeinen verwendet werden, um eine csv-Matrix in ein Array zu konvertieren?
Generell verstehe ich nicht, wie zum Beispiel, nehmen wir ein Beispiel
//--- прочитаем данные из файла
for(int i=0;i<size;i++)
{
time_buff[i]=(datetime)FileReadDouble(file_handle);
ma_buff[i]=FileReadDouble(file_handle);
}
so schreiben Sie die gleichen Daten in die Arraystime_buff[i]undma_buff[i]
Beispiel von https://www.mql5.com/ru/docs/files/filereaddouble
Und wenn ich ein zweidimensionales Array habe, wie kann ich die Aufzählung anordnen.
Wenn ichFileReadString verwende, muss ich die Länge der Zeichenkette angeben, ich muss die Anzahl der Ziffern in der Zeichenkette kennen, nicht die Zellen?
Anscheinend sollte ichFileReadNumber verwenden, aber es ist zu seltsam
Und sagen Sie mir bitte, als wir über das Schreiben eines Arrays FileWriteArray() sprachen, wie haben Sie versucht, das Geschriebene zu lesen?
string path=InpDirectoryName+"//"+InpFileName;
//--- откроем файл
ResetLastError();
int file_handle=FileOpen(path,FILE_READ|FILE_BIN);
if(file_handle!=INVALID_HANDLE)
{
//--- прочитаем все данные из файла в массив
FileReadArray(file_handle,arr);
//--- получим размер массива
int size=ArraySize(arr);
//--- распечатаем данные из массива
Print(" = ",arr[0][0]," = ",arr[1][1]," = ",arr[2][2]);
Print("Total data = ",size);
//--- закрываем файл
FileClose(file_handle);
}
else
Print("File open failed, error ",GetLastError());
2017.01.09 17:20:40.609 TorFid_v02 (EURUSD,H1) Total data = 1020100
Ich verstehe, was fehlt, nämlich die umgekehrte Konvertierung in ein 2D-Array, aber ich verstehe nicht, wie
Es sei denn, ich habe sie richtig gespeichert.
{
for(int q=1; q<ARRAY_SIZE_X-1; q++) // Перебор по периоду, колонка X
{
arr[q][z]=NormalizeDouble(sm.d[q+1].m[nBar-z],5); // M(I) SMA
}
}
WriteData(1000);
//| Запись n элементов массива в файл |
//+------------------------------------------------------------------+
void WriteData(const int n)
{
//--- откроем файл
ResetLastError();
int handle=FileOpen(path,FILE_READ|FILE_WRITE|FILE_BIN);
if(handle!=INVALID_HANDLE)
{
//--- запишем данные массива в конец файла
FileSeek(handle,0,SEEK_END);
FileWriteArray(handle,arr,0,n);
//--- закрываем файл
FileClose(handle);
}
else
Print("Failed to open the file, error ",GetLastError());
}