Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 1116
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Buon tempo, come aggiungere una nuova linea al file.csv finito, con uno spostamento alla 1a linea - se possibile? O in qualche altro modo, ma senza ricalcolare/riciclare i dati esistenti. A meno che non sia permesso di aggiornare i nomi delle colonne e delle righe
{
int handle= FileOpen(fileName,FILE_CSV|FILE_WRITE," "),x=0,y=0;
Rimuovi FILE_CSV, usa invece FILE_ANSI se usi ilformato"\n\t" ecc.
Rimuovete FILE_CSV, usate invece FILE_ANSI seusate"\n\t" ecc.
Ciao, il compito è quello di sovrascrivere un array bidimensionale, in formato BIN, la funzione riconoscerà un array bidimensionale come input?
FileWriteArray
Naturalmente si leggerà bidimensionale. Scusa, senza offesa... Non sarebbe più facile scrivere un array di prova di 2x2 elementi, leggerlo e vedere?
I valori vuoti NULL sono scritti nel file.arrayZ è bidimensionale
//| Запись 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());
}
I valori vuoti NULL sono scritti nel file.arrayZ è bidimensionale
//| Запись 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());
}
Oggi sono troppo pigro e non ho tempo... Nella documentazione, dove avete copiato questa funzione, scrivono anche array di strutture. L'intero esempio dato nella documentazione funziona, se non lo si cambia? Controllate voi stessi, se non funziona, dovete scrivere sul CD.
Queste sono funzioni di serializzazione. Se volete aprire il file in formato leggibile dal testo - scrivete la stringa nel file.
stringa s = StringFormat("prima riga: %s\n", first);
s += StringFormat("seconda linea: %s\n", secondo);
s += StringFormat("terza linea: %s\n", terza);
FileWrite(s);
e così via.
Per leggere FileRead e analizzare ogni riga (dovete giocare, ma dovrete farlo se volete la leggibilità).
Come i bambini, perbacco. Si aspettano da un miracolo Funky Christmas, come se facesse tutto bene, riempisse tutto e lo formattasse )))).
In generale, Buon Natale a tutti, buona fortuna ))))
Non usate gli affilatori FileWriteArray e FileReadArray per scopi per i quali non sono previsti.
Queste sono funzioni di serializzazione. Se volete aprire il file in formato leggibile dal testo - scrivete la stringa nel file.
stringa s = StringFormat("prima riga: %s\n", first);
s += StringFormat("seconda linea: %s\n", secondo);
s += StringFormat("terza linea: %s\n", terza);
FileWrite(s);
e così via.
Per leggere FileRead e analizzare ogni riga (dovete giocare, ma dovrete farlo se volete la leggibilità).
Come i bambini, perbacco. Si aspettano da un miracolo Funky Christmas, come se facesse tutto bene, riempisse tutto e lo formattasse )))).
In generale, Buon Natale e Buon Natale a tutti )))).
Puoi dirmi se è possibile bypassare l'importazione di un array bidimensionale da csv. estraendo un array tridimensionale (o due) dall'indicatore all'EA?
CFileReadDouble considera un array bidimensionale, se sì, come?
In generale, quale operazione dovrebbe essere usata per convertire una matrice csv in un array?
In generale, non capisco come, per esempio, prendere un esempio
//--- прочитаем данные из файла
for(int i=0;i<size;i++)
{
time_buff[i]=(datetime)FileReadDouble(file_handle);
ma_buff[i]=FileReadDouble(file_handle);
}
come questo, scrivere gli stessi dati nell'arraytime_buff[i] ema_buff[i]
esempio da https://www.mql5.com/ru/docs/files/filereaddouble
E se ho un array bidimensionale, come posso organizzare l'enumerazione.
Se usoFileReadString, ho bisogno di specificare la lunghezza della stringa, ho bisogno di sapere il numero di cifre nella stringa, non le celle?
Apparentemente, dovrei usareFileReadNumber ma è troppo strano
Puoi dirmi se è possibile bypassare l'importazione di un array bidimensionale da csv. estraendo un array tridimensionale (o due) dall'indicatore all'EA?
CFileReadDouble considera un array bidimensionale, se sì, come?
In generale, quale operazione dovrebbe essere usata per convertire una matrice csv in un array?
In generale, non capisco come, per esempio, prendere un esempio
//--- прочитаем данные из файла
for(int i=0;i<size;i++)
{
time_buff[i]=(datetime)FileReadDouble(file_handle);
ma_buff[i]=FileReadDouble(file_handle);
}
come questo, scrivere gli stessi dati nell'arraytime_buff[i] ema_buff[i]
esempio da https://www.mql5.com/ru/docs/files/filereaddouble
E se ho un array bidimensionale, come posso organizzare l'enumerazione.
Se usoFileReadString, ho bisogno di specificare la lunghezza della stringa, ho bisogno di sapere il numero di cifre nella stringa, non celle, ma cifre?
Apparentemente, dovrei usareFileReadNumber ma è troppo strano
E per favore ditemi, quando abbiamo parlato di scrivere un array FileWriteArray(), come avete provato a leggere ciò che è stato scritto?
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
Ho capito cosa manca, la conversione inversa in un array 2D, ma non capisco come
A meno che, naturalmente, non l'abbia salvato correttamente.
{
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());
}