[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 471

 
Axmed писал(а) >>


CSV - Kommagetrennte Werte. Das "," ist das Standard-Trennzeichen. Die Trennung mit ";" wird seltener verwendet, und ich bin nicht sicher, ob sie in MQL4 überhaupt unterstützt wird.


int FileOpen( string filename, int mode, int delimiter=';')
Öffnet die Datei zur Eingabe und/oder Ausgabe. Gibt den Dateideskriptor der geöffneten Datei zurück oder -1 im Falle eines Fehlers. Rufen Sie GetLastError() auf, um weitere Informationen über den Fehler zu erhalten.
Hinweis: Dateien können nur im Ordner terminal_directory\experts\files(terminal_directory\tester\files im Falle von Expertentests) oder seinen Unterordnern geöffnet werden.
Die Modi FILE_BIN und FILE_CSV können nicht gleichzeitig verwendet werden.
Wenn FILE_WRITE nicht mit FILE_READ kombiniert wird, wird eine Datei mit der Länge Null geöffnet. Selbst wenn die Datei vor dem Öffnen Daten enthielt, werden diese zerstört. Wenn Daten an eine bestehende Datei angehängt werden sollen, muss diese mit der Kombination FILE_READ | FILE_WRITE geöffnet werden.
Wenn FILE_READ nicht mit FILE_WRITE kombiniert wird, wird die Datei nur geöffnet, wenn sie bereits existiert. Wenn die Datei nicht existiert, kann sie mit FILE_WRITE erstellt werden.
In einer einzigen ausführbaren Datei können nicht mehr als 32 Dateien gleichzeitig geöffnet werden. Deskriptoren von Dateien, die in einem Modul geöffnet wurden, können nicht an andere Module (Bibliotheken) übertragen werden.
Parameter:
Dateiname - Filename - Dateiname.
Modus - Methode der Öffnung. Dies kann ein einzelner Wert oder eine Kombination von Werten sein: FILE_BIN, FILE_CSV, FILE_READ, FILE_WRITE.
Begrenzungszeichen - Ein Begrenzungszeichen für csv-Dateien. Standardmäßig wird das Zeichen ';' verwendet.
Beispiel:
 int handle; handle=FileOpen("my_data.csv",FILE_CSV|FILE_READ,';'); if(handle<1) { Print("Datei my_data.dat nicht erkannt, letzter Fehler ", GetLastError()); return(false); }

Sie sollten auch die Hilfe lesen.
 
Axmed >>:


Что конкретно Вам не понравилось в том что я пишу?..

Das ist alles falsch.
";" - dieses Zeichen gilt als Standardtrennzeichen.
FileReadString - liest nicht die ganze Zeichenkette, sondern von der aktuellen Zeigerposition in der Datei bis zum nächsten Trennzeichen.

 

Hallo, könnten Sie mir bitte sagen, wie ich die gewünschte Variable von einem benutzerdefinierten Indikator aus aufrufen kann? Ich habe GlobalVariableSet() / GlobalVariableGet() ausprobiert - es funktioniert von einem anderen EA aus, aber nicht von einem Indikator aus. Ich danke Ihnen im Voraus.

 
kara100 писал(а) >>

Hallo, könnten Sie mir bitte sagen, wie ich die gewünschte Variable von einem benutzerdefinierten Indikator aus aufrufen kann? Ich habe GlobalVariableSet() / GlobalVariableGet() ausprobiert - es funktioniert von einem anderen EA aus, aber nicht von einem Indikator aus. Ich danke Ihnen im Voraus...


Welche Variable wollen Sie von welchem Indikator erhalten?
 

Preis aus +MP (Zeile 228) - Ich benötige (Preis-)Stufenwerte

Dateien:
ymp_1.mq4  6 kb
 
kara100 писал(а) >>

Preis von +MP (Zeile 228) - Ich brauche Werte (Preisstufen)


Versuchen Sie, die Variable prise auf die globale Ebene zu verschieben, und setzen Sie die Zeichenkette GlobalVariableSet("55", prise); an den Anfang der Funktion start() und holen Sie aus dem anderen Programm double x=GlobalVariableGet("55");

 
Techno писал(а) >>


Versuchen Sie, die Variable prise auf die globale Ebene zu verschieben, und setzen Sie die Zeichenkette GlobalVariableSet("55", prise); an den Anfang der Funktion start() und holen Sie aus dem anderen Programm double x=GlobalVariableGet("55");


Ich habe es ausprobiert... Er schreibt, dass die globale Variable nicht beschrieben wird, d.h. die globalen Variablen kommen nicht aus dem Indikator... >> Ich werde es noch einmal versuchen.

 
kara100 писал(а) >>


Ich glaube, ich habe es versucht... heißt es, dass keine globale Variable beschrieben wird, d.h. es kommen keine globalen Variablen aus dem Indikator... >> Ich werde es noch einmal versuchen.


Sobald Sie den Code korrigiert haben, posten Sie ihn hier.
 
Freunde, ich danke Ihnen sehr für die Antwort. Klärung, wie man String zu verdoppeln konvertieren?
StrToDouble() funktioniert nicht :(

Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";");// Открытие файла
if(Handle<0) // Неудача при открытии файла
{
if(GetLastError()==4103) // Если файла не существует,..
Alert("Нет файла с именем ",File_Name);//.. извещаем трейдера
else // При любой другой ошибке..
Alert("Ошибка при открытии файла ",File_Name);//..такое сообщ
PlaySound("Bzrrr.wav"); // Звуковое сопровождение
return; // Выход из start()
}
k=0;
while(FileIsEnding(Handle)==false) // До тех пор, пока файловый ..
{ // ..указатель не в конце файла
//--------------------------------------------------------- 5 --
ss1[k] = (FileReadString(Handle));
x1[k]=StrToDouble(ss1[k]);//
ss2[k] = (FileReadString(Handle));
rr1[k] = (FileReadString(Handle));
rr2[k] = (FileReadString(Handle));
k=k+1;
if(FileIsEnding(Handle)==true) // Файловый указатель в конце
break; // Выход из чтения и рисования
}
FileClose( Handle ); // Закрываем файл
PlaySound("bulk.wav"); // Звуковое сопровождение
//-----------------------------------------------
Alert(" ", ss1[0], " ", ss2[0], " ", rr1[0], " ", rr2[0], " x1== ", x1[0] );

String-Arrays werden normalerweise aus der Datei gefüllt. Aber ich muss diese Zeichenketten in Double konvertieren.
Ich tue es:
x1[k]=StrToDouble(ss1[k]);
aber bei der Ausgabe an Alert ist x1[0] = 0, was falsch ist, d.h. es liegt irgendwo ein Fehler in der Typkonvertierung vor...

Wie kann man diese Situation beheben?
 
Morzh09 >>:

Друзья, спасибо большое, что откликнулись. уточнение, как преобразовать string в double?
StrToDouble() - не прокатывает :(
Строковые массивы заполняются из файла нормально. Но, необходимо преобразовать эти строки в double.
делаю это:
x1[k]=StrToDouble(ss1[k]);
но, при выводе в Алерте, x1[0] = 0, что неправильно. то есть, где-то тут ошибка в преобразовании типов...

Как такую ситуацию исправить?

Könnten Sie bitte das gesamte Skript veröffentlichen? Ich meine mit den Variablen-Array-Deklarationen usw.