[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 471

 
Axmed писал(а) >>


CSV - Comma Separated Values. Il "," è il delimitatore predefinito. La separazione con ";" è usata meno spesso, e non sono sicuro che sia anche supportata in MQL4.


int FileOpen( stringa filename, int mode, int delimiter=';')
Apre il file per l'input e/o l'output. Restituisce il descrittore del file aperto o -1 in caso di fallimento. Chiama GetLastError() per ottenere maggiori informazioni sull'errore.
Nota: i file possono essere aperti solo nella cartella terminal_directory\experts\files(terminal_directory\tester\files in caso di test esperto) o nelle sue sottocartelle.
Le modalità FILE_BIN e FILE_CSV non possono essere utilizzate contemporaneamente.
Se FILE_WRITE non è combinato con FILE_READ, verrà aperto un file di lunghezza zero. Anche se c'erano dati nel file prima che fosse aperto, saranno distrutti. Se i dati devono essere aggiunti a un file esistente, questo deve essere aperto usando la combinazione FILE_READ | FILE_WRITE.
Se FILE_READ non è combinato con FILE_WRITE, il file sarà aperto solo se esiste già. Se il file non esiste, può essere creato usando FILE_WRITE.
Non si possono aprire più di 32 file contemporaneamente nello stesso eseguibile. I descrittori dei file aperti in un modulo non possono essere trasferiti ad altri moduli (librerie).
Parametri:
nome del file - Filename - nome del file.
modo - Metodo di apertura. Questo può essere un valore singolo o una combinazione di valori: FILE_BIN, FILE_CSV, FILE_READ, FILE_WRITE.
delimitatore - Un carattere delimitatore per i file csv. Per default viene applicato il carattere ';'.
Esempio:
 int handle; handle=FileOpen("my_data.csv",FILE_CSV|FILE_READ,';'); if(handle<1) { Print("File my_data.dat non rilevato, ultimo errore ", GetLastError()); return(false); }

Dovresti leggere anche l'aiuto.
 
Axmed >>:


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

È tutto sbagliato.
Il ";" è il delimitatore predefinito.
FileReadString - non legge l'intera stringa, ma dalla posizione corrente del puntatore nel file al prossimo separatore.

 

Ciao, potresti dirmi come chiamare la variabile richiesta da un indicatore personalizzato? Ho provato GlobalVariableSet() / GlobalVariableGet() - funziona da un altro EA, ma non da un indicatore. Grazie in anticipo.

 
kara100 писал(а) >>

Ciao, potresti dirmi come chiamare la variabile richiesta da un indicatore personalizzato? Ho provato GlobalVariableSet() / GlobalVariableGet() - funziona da un altro EA, ma non da un indicatore. Grazie in anticipo...


Quale variabile volete ottenere e da quale indicatore?
 

Prezzo da +MP (linea 228) - ho bisogno di valori di livello (prezzo)

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

Prezzo da +MP (linea 228) - ho bisogno di valori (prezzo) livelli


provare a spostare la variabile prise a livello globale, e mettere la stringa GlobalVariableSet("55", prise); all'inizio della funzione start() e dall'altro programma ottenere double x=GlobalVariableGet("55");

 
Techno писал(а) >>


provare a spostare la variabile prise a livello globale, e mettere la stringa GlobalVariableSet("55", prise); all'inizio della funzione start() e dall'altro programma ottenere double x=GlobalVariableGet("55");


L'ho provato... Scrive che la variabile globale non è descritta, cioè le variabili globali non escono dall'indicatore... >> Proverò di nuovo.

 
kara100 писал(а) >>


Credo di aver provato... dice che nessuna variabile globale è descritta, cioè nessuna variabile globale esce dall'indicatore... >> Proverò di nuovo.


Una volta sistemato il codice, postalo qui.
 
Amici, grazie mille per aver risposto. chiarimento, come convertire la stringa in doppio?
StrToDouble() non funziona :(

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

Gli array di stringhe sono riempiti normalmente da file. Ma ho bisogno di convertire queste stringhe in doppie.
Lo faccio:
x1[k]=StrToDouble(ss1[k]);
ma, quando l'output in Alert, x1[0] = 0, che è sbagliato. cioè c'è un errore nella conversione dei tipi da qualche parte...

Come risolvere questa situazione?
 
Morzh09 >>:

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

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

Potresti per favore postare l'intero script? Intendo con le dichiarazioni di array di variabili, ecc.