Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 1119
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
come risultato, ho diviso per 8000, in modo che i valori dell'array rientrino nei loro indici
Dimmi tu...
FileSize
Restituisce la dimensione del file in byte.
Tipo
Dimensione in byte
Valore minimo positivo
Valore massimo
Analogico in C++
float
4
1.175494351e-38
3.402823466e+38
float
doppio
8
2.2250738585072014e-308
1.7976931348623158e+308
doppio
dimensione del file in byte, la dimensione occupata dal tipo double in byte, ed è necessario dividerla per zhzhezhezhezhezhezhezhez
Dimmi tu...
Tipo
Dimensione in byte
Valore minimo positivo
Valore massimo
Analogico in C++
float
4
1.175494351e-38
3.402823466e+38
float
doppio
8
2.2250738585072014e-308
1.7976931348623158e+308
doppio
dimensione del file in byte, la dimensione occupata dal tipo double in byte, ed è obbligatorio dividere per zhzhezhezhezhezhezhezhezhezhez
Cos'è un zzzzzzzz? I conti non tornano, non puoi prendertela comoda?
Получается, что если массив динамический, то формула /16, не совсем подходит, хотя второе же измерение фиксировано, к там уже -
FileSeek(handle,0,SEEK_END);
Люди записывают переменные в массив, возможно поможет? типо такого
int dataArraySize = ArraySize(dataArray); //записываем в переменную размер массива
int fileHandle = FileOpen("filename.dat", FILE_BIN | FILE_WRITE); // открываем файл на запись в бинарном режиме.
FileWriteInteger(fileHandle, dataArraySize);//записываем в файл размер массива
FileWriteDouble(fileHandle, dataArraySize);//записываем в файл все элементы массива
Il codice della linea che completa il file bin con una nuova barra
{
// ArrayResize(arrS,coun);
for(int q=0; q<ARRAY_SIZE_X; q++) // Перебор по периоду, колонка X
{
arrS[q]=sm.d[q].m[rates_total-1]; // M(I) SMA
coun++;
}
ResetLastError();
int handle=FileOpen(path,FILE_WRITE|FILE_BIN);
if(handle!=INVALID_HANDLE)
{
//--- запишем данные массива в конец файла
FileSeek(handle,0,SEEK_SET);
FileWriteArray(handle,arrS);
Print("arrS = ",arrS[0]," arrS = ",arrS[1]," arrS = ",arrS[3]);
//--- закрываем файл
FileClose(handle);
}
else
Print("Failed to open the file, error ",GetLastError());
count=1;
}
Получается, что если массив динамический, то формула /16, не совсем подходит, хотя второе же измерение фиксировано, к там уже -
FileSeek(handle,0,SEEK_END);
Люди записывают переменные в массив, возможно поможет? типо такого
int dataArraySize = ArraySize(dataArray); //записываем в переменную размер массива
int fileHandle = FileOpen("filename.dat", FILE_BIN | FILE_WRITE); // открываем файл на запись в бинарном режиме.
FileWriteInteger(fileHandle, dataArraySize);//записываем в файл размер массива
FileWriteDouble(fileHandle, dataArraySize);//записываем в файл все элементы массива
Il codice della linea che completa il file bin con una nuova barra
{
// ArrayResize(arrS,coun);
for(int q=0; q<ARRAY_SIZE_X; q++) // Перебор по периоду, колонка X
{
arrS[q]=sm.d[q].m[rates_total-1]; // M(I) SMA
coun++;
}
ResetLastError();
int handle=FileOpen(path,FILE_WRITE|FILE_BIN);
if(handle!=INVALID_HANDLE)
{
//--- запишем данные массива в конец файла
FileSeek(handle,0,SEEK_SET);
FileWriteArray(handle,arrS);
Print("arrS = ",arrS[0]," arrS = ",arrS[1]," arrS = ",arrS[3]);
//--- закрываем файл
FileClose(handle);
}
else
Print("Failed to open the file, error ",GetLastError());
count=1;
}
Non ricordo dove l'ho letto, ma se si apre un file solo per scrivere, tutto quello che c'è dentro viene cancellato.
Il file deve essere aperto per la lettura e la scrittura
Non ricordo dove l'ho letto, ma se un file viene aperto solo per la scrittura, tutto quello che c'è dentro viene cancellato.
Il file deve essere aperto per la lettura e la scrittura
Pensavo che fosse tutto qui.
Se scrivo nuovi dati all'inizio, scrive all'inizio completo, c'è un modo per aumentare la dimensione dell'inizio))
Voglio dire, si limita a scrivere all'inizio o continua a salvare solo fino alla fine?
E se salvo fino alla fine, e continuo ad aggiungere fino alla fine, come faccio a leggere dalla fine alla quantità giusta? O meglio, come catturare dal file bin il chunk giusto daN alla fine?
O l'ho fatto con i comandi sbagliati?
Salvo due matrici alla fine - come ho capito aumentando correttamente il peso del bidone.
Poi provo a trasferire i dati all'array con il compito di catturare l'ultimo record, il file bin è più grande dell'array.
int file_handle=FileOpen(path,FILE_READ|FILE_BIN);
if(file_handle!=INVALID_HANDLE)
{
//--- прочитаем все данные из файла в массив
//file_siz=FileSize(file_handle)/8000;
//FileSeek(file_handle,file_size,SEEK_END);
FileReadArray(file_handle,arr);
//--- получим размер массива
int siz=ArraySize(arr);
//--- распечатаем данные из массива
Print("arr = ",arr[1][3]," Bid = ",arr[1][2]," Ask = ",arr[0][3]);
Print("file_siza = ",file_siz);
//--- закрываем файл
FileClose(file_handle);
Se leggo la sezione richiesta dal file binario con
L'algoritmo elabora l'array stesso, le celle mancanti sono tradotte in modo simile alla posizione nel contenitore, che a sua volta dà l'intervallo richiesto nel limite della stessa posizione del contenitore, solo con degli zeri.
Se leggo la sezione richiesta dal file binario con
L'algoritmo elabora l'array stesso, le celle mancanti sono tradotte in modo simile alla posizione binaria, che a sua volta dà l'intervallo richiesto nel limite della stessa posizione come nel binario, solo con zeri.
Non capisco cosa può andare storto...
Basta aprire il file per la lettura.
sposta il puntatore al giusto numero di byte nella giusta direzione
// В данном случае от конца файла на 32 байта
32 byte sono 8 valori interi o 4 valori in virgola mobile.
Se l'array è bidimensionale, questo significa che ci spostiamo di 4 righe se l'array è di tipo int, o di 2 righe se l'array è di tipo double
Poi, leggiamo i valori nell'array dichiarato in precedenza come dinamico arr[][2]; questo è un array bidimensionale.
ECCO!!!
Successivamente, determinare la dimensione dell'array
e poi stampare i valori.
int i, z;
for(i = 0; i < size; i++)
{for(z = 0; z < 2; z++)
{
Print("arr[", i, "][", z, "]", arr[i][z]);
}
}
Non capisco cosa possa andare storto...
Grazie a te! Ha funzionato)))