Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1119
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
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é)))