Obur bellek RAM MT5, büyük dosyaları okuma / yazma ile ilgili sorunlar - sayfa 4

 
Maxim Dmitrievsky :

dosyanızı bu şekilde okumayı deneyin

https://www.mql5.com/ru/docs/files/filereadarray

Terminali şimdi açmam gerekiyor, mb yarın)

Yani " bir ikili dosyadan " okuyor, nereden bir tane alabilirim?

yarın bekliyorum :)
 
Aleksey Vyazmikin :

Yani " bir ikili dosyadan " okuyor, nereden bir tane alabilirim?

yarın bekliyorum :)

nereden alıyorsunuz?

 
Maxim Dmitrievsky :

nereden alıyorsunuz?

Bu özel durum hakkında konuşursak, dosya Excel'deki diğer CSV dosyalarından birleştirilir. Bu özel durumda dosyalar orijinal olarak MT5 tarafından oluşturulmuştur.

 
Aleksey Vyazmikin :

Bu özel durum hakkında konuşursak, dosya Excel'deki diğer CSV dosyalarından birleştirilir. Bu özel durumda, orijinal olarak MT5 tarafından oluşturulmuştur.

peki, MT5'ten ikili dosyaya yazın. dizi var mı Diziyi hemen dosyaya yazın ve daha sonra yükleyin

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri

fxsaber , 2018.04.06 17:08

Muhtemelen pek çok insan bunu yapmaz, bu yüzden burada
 // Заполнение массива строками из файла - классика
int FileToStrings( const string FileName, string &Str[] )
{
   ArrayResize (Str, 0 );

   const int handle = FileOpen (FileName, FILE_READ | FILE_ANSI );
  
   if (handle != INVALID_HANDLE )
  {
     while (! FileIsEnding (handle))
      Str[ ArrayResize (Str, ArraySize (Str) + 1 ) - 1 ] = FileReadString (handle);
    
     FileClose (handle);
  }
  
   return ( ArraySize (Str));
}

// Заполнение массива строками из файла - альтернатива
int FileToStrings2( const string FileName, string &Str[] )
{
   uchar Bytes[];
  
   return ( FileLoad (FileName, Bytes) ? StringSplit ( CharArrayToString (Bytes), '\n' , Str) : 0 );
}

void OnStart ()
{
   const string FileName = "Test.txt" ;
  
   string Str[];  
  FileToStrings(FileName, Str);

   string Str2[];  
  FileToStrings2(FileName, Str2);
  
   ArrayPrint (Str);
   ArrayPrint (Str2);
}
Bir şeyi ayrıştırmam gerektiğinde kendim ikinci seçeneği kullanıyorum. Muhtemelen ve daha hızlı çalışıyor, kontrol etmedi.

Bir rehber olarak, bu tür göstergeler mümkündür

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Komut Dosyaları: ThirdPartyTicks

fxsaber , 2018.04.18 23:10

Saniyede üç milyon tıklamayı ayrıştırır (ZIP+CSV). Muhtemelen hızlıdır.

3 GB'den fazla ZIP (>> 10 GB CSV) Sorunsuz işliyorum, bu nedenle her şey kesinlikle iyi çalışabilir.

 

CSV ayrıştırmasının kendisi yaklaşık 10 satır uzunluğunda olmalıdır. Bu durumda tüm sınıfa hiç ihtiyaç yoktur.

Görev, programlamaya yeni başlayanlar için bile çok basittir. Dosyadan okuduktan sonra verilere ne olduğu, yalnızca konu uzmanının anlayabileceği bir sonraki görevdir.

Alexey, kendine bir programcı tut ya da normal şekilde programlama öğrenmeye başla. Aksi takdirde kullanamayacağınız dersler için paranızı çöpe atmış olursunuz. Programlama deneyimi olmadan para kazanmaya çalışmak anlamsızdır.

not

Renata'ya dokunma. Bu konu ile ilgisi yok. Optimizasyonu düzeltmesi gerekiyor.

 
Maxim Dmitrievsky :

peki, MT5'ten ikili dosyaya yazın. dizi var mı Diziyi hemen dosyaya yazın ve daha sonra yükleyin

Birçok sütun var, her sütun ayrı bir dizi.

 
fxsaber :

Bir rehber olarak, bu tür göstergeler mümkündür

3 GB'den fazla ZIP (>> 10 GB CSV) Sorunsuz işliyorum, bu nedenle her şey kesinlikle iyi çalışabilir.

Teşekkür ederim. Bir diziye satırların nasıl yazılacağı açık ama ben sütunlarla da çalışmak istiyorum. Diziden satır numarası ile çağrı yaptıktan sonra, sütunları bulmak için ek ayrıştırma yapmanız gerektiği varsayılır, ancak bu nasıl yapılır?

 
Aleksey Vyazmikin :

Birçok sütun var, her sütun ayrı bir dizi.

peki, bu 2 boyutlu bir dizi, bir matris. yaz

 
Roffild :

CSV ayrıştırmasının kendisi yaklaşık 10 satırdan oluşmalıdır. Bu durumda tüm sınıfa hiç ihtiyaç yoktur.

Görev, programlamaya yeni başlayanlar için bile çok basittir. Dosyadan okuduktan sonra verilere ne olduğu, yalnızca konu uzmanının anlayabileceği bir sonraki görevdir.

Alexey, kendine bir programcı tut ya da normal şekilde programlama öğrenmeye başla. Aksi takdirde kullanamayacağınız dersler için paranızı çöpe atmış olursunuz. Programlama deneyimi olmadan para kazanmaya çalışmak anlamsızdır.

not

Renata'ya dokunma. Bu konu ile ilgisi yok. Optimizasyonu düzeltmesi gerekiyor.

Sınıfı kullanmak benim için uygun, zaten 3 yıldır kullanıyorum, MT4 ile bile - uygun, ama kahretsin, yavaş çalışıyor.

Bir satırı okumak elbette basittir, ancak onu çalışan bir hücre yapısına dönüştürmek çok daha zordur.

Ne demek dersleri kullanamıyorum? Ayrıca, çalışanın bu sınıfa yazdığı meta alıntıları kullanıyorum. Ve sonra, aslında bir kişiyi işe aldım, para ödedim ve bitmiş bir ürün almasını bekledim, ama bana frenlerin normal olduğunu söylediler ... İnandım, ama şimdi çok fazla hafıza var - öfkeli.