[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.
[Eliminato]  
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.