Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1119
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
sonunda, dizi değerlerinin indekslerinde durması için 8000'e böldüm
Sen en iyisini bilirsin...
Dosya boyutu
Dosya boyutunu bayt cinsinden döndürür.
Tip
Bayt cinsinden boyut
Minimum pozitif değer
Maksimum değer
C++'da analog
batmadan yüzmek
4
1.175494351e-38
3.402823466e+38
batmadan yüzmek
çift
sekiz
2.2250738585072014e-308
1.7976931348623158e+308
çift
Dosyanın bayt cinsinden boyutu, bayt cinsinden çift türün kapladığı boyut ve zhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzh ile bölmek gerekir
Sen en iyisini bilirsin...
Tip
Bayt cinsinden boyut
Minimum pozitif değer
Maksimum değer
C++'da analog
batmadan yüzmek
4
1.175494351e-38
3.402823466e+38
batmadan yüzmek
çift
sekiz
2.2250738585072014e-308
1.7976931348623158e+308
çift
Dosyanın bayt cinsinden boyutu, bayt cinsinden çift türün kapladığı boyut ve zhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzh ile bölmek gerekir
zhzhzhzhzh nedir? Bana uymuyor, kahretsin, daha kolay olamaz mı?
Получается, что если массив динамический, то формула /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); //записываем в файл все элементы массива
Bin dosyasını yeni bir çubukla tamamlayan satırın kodu
{
// 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); //записываем в файл все элементы массива
Bin dosyasını yeni bir çubukla tamamlayan satırın kodu
{
// 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 ;
}
Nerede okuduğumu hatırlamıyorum ama dosya sadece yazmak için açılmışsa içindeki her şey silinmiştir.
Dosya okuma ve yazma için açılmalıdır.
Nerede okuduğumu hatırlamıyorum ama dosya sadece yazmak için açılmışsa içindeki her şey silinmiştir.
Dosya okuma ve yazma için açılmalıdır.
AAA işe yaradığını düşündü
Başa yeni veri yazarım, tam başa yazıyor, bir şekilde başlangıcın boyutunu büyütmek mümkün mü))
Yani başlangıca giriş sınırlı mı? Yoksa sadece sonuna kadar tasarruf etmeye devam mı?
Ve eğer verileri sonuna kadar kaydedersem ve sonuna eklemeye devam edersem, o zaman sondan istenen miktara kadar nasıl okurum? Daha doğrusu bin dosyasından istenen parçanın N'den sonuna kadar nasıl yakalanacağı
Yoksa yanlış takımlarla mı yaptı!?!?
İki diziyi sona kaydediyorum - kutunun ağırlığını doğru bir şekilde artırarak anladığım gibi yazılmış.
Ardından, son kaydı yakalama görevi ile verileri bir diziye aktarmaya çalışıyorum, bin dosyasının boyutu diziden daha büyük.
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);
Kullanarak bir ikili dosyadan istenen bölümü okursam
O zaman istenilen sonuç elde edilemez, algoritma diziyi kendisi işler, hücrenin belirtilen bölümüne düşmeyenler bindeki pozisyona benzer şekilde yayınlanır, bu da aynı limitte istenen boşluğu verir. sadece sıfırlarla kutudaki gibi konumlandırın.
Kullanarak bir ikili dosyadan istenen bölümü okursam
O zaman istenilen sonuç elde edilemez, algoritma diziyi kendisi işler, hücrenin belirtilen bölümüne düşmeyenler bindeki pozisyona benzer şekilde yayınlanır, bu da aynı limitte istenen boşluğu verir. sadece sıfırlarla kutudaki gibi konumlandırın.
Neyin yanlış gidebileceğini anlamıyorum...
Sadece aptalca dosyayı okumak için aç
işaretçiyi istenen yönde gerekli bayt sayısı kadar kaydırın
// В данном случае от конца файла на 32 байта
32 bayt, 8 tam sayı değeri veya 4 kayan nokta değeridir.
Dizi iki boyutluysa, bu, dizi int türündeyse 4 satır, dizi türü double ise 2 satır kaydırdığımız anlamına gelir.
Daha sonra, dinamik arr[][2] olarak önceden bildirilen bir diziye değerleri okuruz; Bu iki boyutlu bir dizidir.
TÜMÜ!!!
Ardından, dizinin boyutunu belirlersiniz
ve elde edilen değerleri yazdırın
int i, z;
for (i = 0 ; i < size; i++)
{for (z = 0 ; z < 2 ; z++)
{
Print ( "arr[" , i, "][" , z, "]" , arr[i][z]);
}
}
Neyin yanlış gidebileceğini anlamıyorum...
Teşekkür ederim! başarılı oldu)))