Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1118

 
   FileReadArray (file_handle,arr);

Lütfen olası gelişmeleri bildiriniz.

Bir dizi[100] vardır ve [1000] boyutunda bir ikili dosya da saklanır, son 100 değerden oluşan bir ikili dosya dizisinin nasıl döndürüleceği. Evrensel bir şey var mı? BU yine 12 saat kazma ve hiçbir şey.

 
Top2n :
   FileReadArray (file_handle,arr);

Lütfen olası gelişmeleri bildiriniz.

Bir dizi[100] vardır ve [1000] boyutunda bir ikili dosya da saklanır, son 100 değerden oluşan bir ikili dosya dizisinin nasıl döndürüleceği. Evrensel bir şey var mı? BU yine 12 saat kazma ve hiçbir şey.

Yanlış hatırlamıyorsam mql4'te count = WHOLE_ARRAY ise veya değer dizi elemanlarının sayısını aşıyorsa tüm dizinin sonuna kadar yazıldığı yazıyordu. Ve herhangi bir hisse senedinden bahsedilmedi. Yani, herhangi bir 1000'den söz edilemez.

Bunu şu şekilde kontrol edebilirsiniz: Kaç değerin kaydedildiğini ve dosyanın hangi boyutta elde edildiğini hesaplayın.

 
Alexey Viktorov :

Yanlış hatırlamıyorsam mql4'te count = WHOLE_ARRAY ise veya değer dizi elemanlarının sayısını aşıyorsa tüm dizinin sonuna kadar yazıldığı yazıyordu. Ve herhangi bir hisse senedinden bahsedilmedi. Yani, herhangi bir 1000'den söz edilemez.

Bunu şu şekilde kontrol edebilirsiniz: Kaç değerin kaydedildiğini ve dosyanın hangi boyutta elde edildiğini hesaplayın.

Diziyi bir ikili dosyaya yazdıktan sonra, bir süre sonra yeni verilerin ortaya çıkmasından bahsetmiyorum, onları yeni bir odomeric dizi aracılığıyla ikiliye yazmaya devam ediyorum (= birincil dizinin sütununun boyutları ), dosyanın sonuna kadar her seferinde yeni bir j sütununa göre

o zaman orijinal dizinin indeksine eşit sayıda ikili veriden çıkarılmasına ihtiyaç vardır, ilk yinelemede ikiliye aktarılmıştır. Ancak, ikincil satırların eklenmesi nedeniyle ikili birincil diziden daha büyük olduğundan, son veri bu sınırlı diziye girecek şekilde kaldırıyoruz. İkincil dizeler okunabilir diziye girmeli ve ikili dosyadaki ilk dizeler bölge dışı dizide olmalıdır.

 
Top2n :

Diziyi bir ikili dosyaya yazdıktan sonra, bir süre sonra yeni verilerin ortaya çıkmasından bahsetmiyorum, onları yeni bir odomeric dizi aracılığıyla ikiliye yazmaya devam ediyorum (= birincil dizinin sütununun boyutları ), dosyanın sonuna kadar her seferinde yeni bir j sütununa göre

o zaman orijinal dizinin indeksine eşit sayıda ikili veriden çıkarılmasına ihtiyaç vardır, ilk yinelemede ikiliye aktarılmıştır. Ancak, ikincil satırların eklenmesi nedeniyle ikili birincil diziden daha büyük olduğundan, son veri bu sınırlı diziye girecek şekilde kaldırıyoruz.

O halde okumadan önce dizinin boyutunu atamak gerekli değildir. İlk veri gerekli değilse, boyutu bayt cinsinden hesaplamak ve okuma için başlangıç konumunu gerekli miktarda kaydırmak gerekir.
 
Alexey Viktorov :
O halde okumadan önce dizinin boyutunu atamak gerekli değildir. İlk veri gerekli değilse, boyutu bayt cinsinden hesaplamak ve okuma için başlangıç konumunu gerekli miktarda kaydırmak gerekir.

Baytların nasıl hesaplanacağı soru bu

FileWriteInteger (h,s1, INT_VALUE ); //ножно ли перед записью записывать размера массива?
s1= FileReadInteger (h, INT_VALUE ); //ножно ли перед восстановлением считываем размер массива?

может как то через это sizeof
 
Top2n :

Baytların nasıl hesaplanacağı soru bu

FileWriteInteger (h,s1, INT_VALUE ); //ножно ли перед записью записывать размера массива?
s1= FileReadInteger (h, INT_VALUE ); //ножно ли перед восстановлением считываем размер массива?

может как то через это sizeof

Veriler double türündeyse , dosya boyutunu double türünün sayısı tarafından işgal edilen bayt sayısına, yani 8'e bölün.

Документация по MQL5: Файловые операции / FileSize
Документация по MQL5: Файловые операции / FileSize
  • www.mql5.com
Файловые операции / FileSize - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov :

Veriler double türündeyse , dosya boyutunu double türünün sayısı tarafından işgal edilen bayt sayısına, yani 8'e bölün.

FileFindFirst aracılığıyla mı?

veya her yeni satırı bayt cinsinden toplayın

Короче при записи начал суммировать вторичный массив в байтах, каждая запись плюсуется с предыдущей
file_size=+ FileSize (handle); // чтобы выяснить индекс от которого открывать

FileReadArray (file_handle,arr,file_size, WHOLE_ARRAY );
bir şey değil
 
Top2n :
FileFindFirst aracılığıyla mı?
Yani aynı dosya adına ve tutamacına sahipsiniz.
 
Top2n :

FileFindFirst aracılığıyla mı?

veya her yeni satırı bayt cinsinden toplayın

Короче при записи начал суммировать вторичный массив в байтах, каждая запись плюсуется с предыдущей
file_size=+ FileSize (handle); // чтобы выяснить индекс от которого открывать

FileReadArray (file_handle,arr,file_size, WHOLE_ARRAY );
bir şey değil

Gönderinizi yanıtladıktan sonra düzenlememelisiniz...

Bu taraftan değil. Diziyi okumadan önce, boyutunu belirlersiniz file_size = FileSize (handle); ve dolu hafızaya veri tipine göre bölün, yani ikiye katlayın. Dosyadaki sayıların sayısını alırsınız. Dizi iki boyutluysa, dosyada tam olarak 2 kat daha az giriş vardır. Ve istediğiniz satırdan okumak için kaç bayt taşımanız gerektiğini alırsınız.

 
Alexey Viktorov :

Gönderinizi yanıtladıktan sonra düzenlememelisiniz...

Bu taraftan değil. Diziyi okumadan önce, boyutunu belirlersiniz file_size = FileSize (handle); ve dolu hafızaya veri tipine göre bölün, yani ikiye katlayın. Dosyadaki sayıların sayısını alırsınız. Dizi iki boyutluysa, dosyada tam olarak 2 kat daha az giriş vardır. Ve istediğiniz satırdan okumak için kaç bayt taşımanız gerektiğini alırsınız.

sonunda, dizi değerlerinin indekslerinde durması için 8000'e böldüm