la taille du fichier en octets, la taille occupée par le type double en octets, et il est obligatoire de diviser par zhzhezhezhezhezhezhezhezhezhezhezhez
Qu'est-ce que le zzzzzzzz ? Ça ne tient pas debout, mec, tu ne peux pas faire plus simple ?
Top2n: C'est quoi un zzzzzz ? Ça ne colle pas, tu ne peux pas te calmer ?
S'il te plaît, utilise ton cerveau juste un peu. Je ne peux que vous conseiller, pas le faire pour vous. Quelles sont vos données, quelle est la dimension du tableau... Je ne veux pas me souvenir de tout ça et vous mener à la victoire.
Получается, что если массив динамический, то формула /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);//записываем в файл все элементы массива
Le code de la ligne qui complète le fichier bin avec une nouvelle barre.
if(count==size) { // 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);//записываем в файл все элементы массива
Le code de la ligne qui complète le fichier bin avec une nouvelle barre.
if(count==size) { // 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; }
Je ne me souviens plus où je l'ai lu, mais si vous ouvrez un fichier en écriture uniquement, tout ce qu'il contient est supprimé.
int handle=FileOpen(path,FILE_WRITE|FILE_BIN);
Le fichier doit être ouvert pour la lecture et l'écriture.
int handle = FileOpen(path, FILE_READ|FILE_WRITE|FILE_BIN);
Si nous ouvrons le fichier pour la lecture seulement, alors l'indicateur d'écriture peut et même mieux ne pas être spécifié.
J'écris de nouvelles données au début, il écrit au début complet, y a-t-il un moyen d'augmenter la taille du début))
Est-il possible d'écrire jusqu'au début ou de continuer à sauvegarder jusqu'à la fin seulement ?
FileSeek(handle,0,SEEK_SET);
Et si j'économise jusqu'à la fin, et que je continue à ajouter jusqu'à la fin, comment puis-je lire depuis la fin jusqu'au bon montant ? Ou plutôt, comment capturer à partir du fichier bin le bon morceau de N à la fin ?
Ou est-ce que je l'ai fait avec les mauvaises commandes ! ?!?
J'enregistre deux tableaux à la fin - il est écrit comme je le comprends en augmentant le poids de la poubelle correctement.
Ensuite, j'essaie de transférer les données vers le tableau avec la tâche de capturer le dernier enregistrement, les bacs du fichier sont plus grands que le tableau.
ResetLastError(); 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);
FileSeek(file_handle,file_size,SEEK_SET); что делает - определяет положение массива или в бине?
Si je lis la section requise du fichier binaire avec
FileReadArray(file_handle,arr,0,WHOLE_ARRAY);
L'algorithme traite le tableau lui-même, les cellules manquantes sont traduites de la même manière que la position dans le bac, ce qui à son tour donne la plage demandée dans la limite de la même position que dans le bac, mais avec des zéros.
Si je lis la section requise du fichier binaire avec
FileReadArray(file_handle,arr,0,WHOLE_ARRAY);
L'algorithme traite le tableau lui-même, les cellules manquantes sont traduites de manière similaire à la position binaire, qui à son tour donne la gamme demandée dans la limite de la même position que dans le binaire, seulement avec des zéros.
déplacer le pointeur vers le bon nombre d'octets dans la bonne direction
FileSeek(handle, -32, SEEK_END); // В данном случае от конца файла на 32 байта
32 octets correspondent à 8 valeurs entières ou 4 valeurs à virgule flottante.
Si le tableau est à deux dimensions, cela signifie que nous décalons de 4 lignes si le tableau est de type int, ou de 2 lignes si le tableau est de type double.
Ensuite, nous lisons les valeurs dans le tableau déclaré au préalable comme un tableau dynamique arr[][2] ; il s'agit d'un tableau à deux dimensions.
FileReadArray(handle, arr);
C'EST ÇA ! !!
Ensuite, déterminez la taille du tableau
int size = ArrayRange(arr, 0);
et ensuite imprimer les valeurs.
int i, z;
for(i = 0; i < size; i++)
{ for(z = 0; z < 2; z++) { Print("arr[", i, "][", z, "]", arr[i][z]); } }
comme résultat, j'ai divisé par 8000, pour que les valeurs du tableau rentrent dans leurs index.
Vous me dites...
Taille du fichier
Renvoie la taille du fichier en octets.
Type
Taille en octets
Valeur minimale positive
Valeur maximale
Analogique en C++
float
4
1.175494351e-38
3.402823466e+38
float
double
8
2.2250738585072014e-308
1.7976931348623158e+308
double
taille du fichier en octets, la taille occupée par le type double en octets, et il est nécessaire de la diviser par zhzhezhezhezhezhezhezhezhezhez
Vous me dites...
Type
Taille en octets
Valeur positive minimale
Valeur maximale
Analogique en C++
float
4
1.175494351e-38
3.402823466e+38
float
double
8
2.2250738585072014e-308
1.7976931348623158e+308
double
la taille du fichier en octets, la taille occupée par le type double en octets, et il est obligatoire de diviser par zhzhezhezhezhezhezhezhezhezhezhezhez
C'est quoi un zzzzzz ? Ça ne colle pas, tu ne peux pas te calmer ?
Получается, что если массив динамический, то формула /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);//записываем в файл все элементы массива
Le code de la ligne qui complète le fichier bin avec une nouvelle barre.
{
// 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);//записываем в файл все элементы массива
Le code de la ligne qui complète le fichier bin avec une nouvelle barre.
{
// 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;
}
Je ne me souviens plus où je l'ai lu, mais si vous ouvrez un fichier en écriture uniquement, tout ce qu'il contient est supprimé.
Le fichier doit être ouvert pour la lecture et l'écriture.
Je ne me souviens plus où je l'ai lu, mais si un fichier n'est ouvert que pour l'écriture, tout ce qu'il contient est supprimé.
Le fichier doit être ouvert pour la lecture et l'écriture.
Je pensais que c'était ça.
J'écris de nouvelles données au début, il écrit au début complet, y a-t-il un moyen d'augmenter la taille du début))
Est-il possible d'écrire jusqu'au début ou de continuer à sauvegarder jusqu'à la fin seulement ?
Et si j'économise jusqu'à la fin, et que je continue à ajouter jusqu'à la fin, comment puis-je lire depuis la fin jusqu'au bon montant ? Ou plutôt, comment capturer à partir du fichier bin le bon morceau de N à la fin ?
Ou est-ce que je l'ai fait avec les mauvaises commandes ! ?!?
J'enregistre deux tableaux à la fin - il est écrit comme je le comprends en augmentant le poids de la poubelle correctement.
Ensuite, j'essaie de transférer les données vers le tableau avec la tâche de capturer le dernier enregistrement, les bacs du fichier sont plus grands que le tableau.
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 je lis la section requise du fichier binaire avec
L'algorithme traite le tableau lui-même, les cellules manquantes sont traduites de la même manière que la position dans le bac, ce qui à son tour donne la plage demandée dans la limite de la même position que dans le bac, mais avec des zéros.
Si je lis la section requise du fichier binaire avec
L'algorithme traite le tableau lui-même, les cellules manquantes sont traduites de manière similaire à la position binaire, qui à son tour donne la gamme demandée dans la limite de la même position que dans le binaire, seulement avec des zéros.
Je ne comprends pas ce qui peut mal se passer...
Vous ouvrez simplement le fichier pour le lire.
déplacer le pointeur vers le bon nombre d'octets dans la bonne direction
// В данном случае от конца файла на 32 байта
32 octets correspondent à 8 valeurs entières ou 4 valeurs à virgule flottante.
Si le tableau est à deux dimensions, cela signifie que nous décalons de 4 lignes si le tableau est de type int, ou de 2 lignes si le tableau est de type double.
Ensuite, nous lisons les valeurs dans le tableau déclaré au préalable comme un tableau dynamique arr[][2] ; il s'agit d'un tableau à deux dimensions.
C'EST ÇA ! !!
Ensuite, déterminez la taille du tableau
et ensuite imprimer les valeurs.
int i, z;
for(i = 0; i < size; i++)
{for(z = 0; z < 2; z++)
{
Print("arr[", i, "][", z, "]", arr[i][z]);
}
}
Je ne comprends pas ce qui peut mal se passer...
Merci, toi ! Cela a marché)))