Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 1119
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
como resultado, he dividido por 8000, para que los valores de la matriz encajen en sus índices
Dígame usted...
FileSize
Devuelve el tamaño del archivo en bytes.
Tipo
Tamaño en bytes
Valor mínimo positivo
Valor máximo
Analógico en C++
float
4
1.175494351e-38
3.402823466e+38
float
doble
8
2.2250738585072014e-308
1.7976931348623158e+308
doble
tamaño del archivo en bytes, el tamaño ocupado por el tipo doble en bytes, y es necesario dividirlo por zhzhezhezhezhezhez
Dígame usted...
Tipo
Tamaño en bytes
Valor mínimo positivo
Valor máximo
Analógico en C++
float
4
1.175494351e-38
3.402823466e+38
float
doble
8
2.2250738585072014e-308
1.7976931348623158e+308
doble
tamaño del archivo en bytes, el tamaño ocupado por el tipo doble en bytes, y es obligatorio dividir por zhzhezhezhezhezhezhez
¿Qué es zzzzzz? No tiene sentido, ¿no puedes tomártelo con calma?
Получается, что если массив динамический, то формула /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);//записываем в файл все элементы массива
El código de la línea que complementa el archivo bin con una nueva 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);//записываем в файл все элементы массива
El código de la línea que complementa el archivo bin con una nueva 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;
}
No recuerdo dónde lo leí, pero si abres un archivo sólo para escribir, se borra todo lo que contiene.
El archivo tiene que ser abierto para leer y escribir
No recuerdo dónde lo leí, pero si un archivo sólo se abre para escribir, se borra todo lo que contiene.
El archivo tiene que ser abierto para leer y escribir
Creí que eso era todo.
Si escribo nuevos datos al principio, se escribe al principio completo, ¿hay alguna forma de aumentar el tamaño del principio))
Quiero decir, ¿se limita a escribir hasta el principio? o sigue guardando hasta el final solamente?
Y si guardo hasta el final, y sigo añadiendo hasta el final, ¿cómo leo desde el final hasta la cantidad correcta? O más bien, ¿cómo capturar del archivo bin el trozo correcto desdeN hasta el final?
¿O lo hice con los comandos equivocados?
Guardo dos matrices para el final - como entiendo por el aumento del peso de la papelera correctamente.
Entonces intento transferir los datos al array con la tarea de capturar el último registro, la bandeja del archivo es más grande que el 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);
Si leo la sección requerida del archivo binario con
El algoritmo procesa el propio array, las celdas que faltan se traducen de forma similar a la posición en el bin, que a su vez da el rango solicitado en el límite de la misma posición que en el bin, sólo que con ceros.
Si leo la sección requerida del archivo binario con
El algoritmo procesa la propia matriz, las celdas que faltan se traducen de forma similar a la posición binaria, que a su vez da el rango solicitado en el límite de la misma posición que en el binario, sólo con ceros.
No entiendo qué puede salir mal...
Sólo tienes que abrir el archivo para leerlo.
desplazar el puntero al número de bytes correcto en la dirección correcta
// В данном случае от конца файла на 32 байта
32 bytes son 8 valores enteros o 4 valores de coma flotante.
Si el array es bidimensional, esto significa que nos desplazamos 4 líneas si el array es de tipo int, o 2 líneas si el array es de tipo double
A continuación, leemos los valores en el array declarado de antemano como un arr[][2] dinámico; se trata de un array bidimensional.
¡¡¡ESO ES!!!
A continuación, determine el tamaño de la matriz
y luego imprimir los valores.
int i, z;
for(i = 0; i < size; i++)
{for(z = 0; z < 2; z++)
{
Print("arr[", i, "][", z, "]", arr[i][z]);
}
}
No entiendo qué puede salir mal...
¡Gracias, tú! Funcionó))