Hatalar, hatalar, sorular - sayfa 327

 
mrProF :
Hazırlıksız, tüm dosya str'ye yazılır ...
FILE_ANSI bayrağını şu şekilde ekleyin: varsayılan olarak unicode okur :)
Yine de 15 olacağım çünkü sonunda boş bir satır var.
MQL5 belgelerine göre, FileReadString işlevi "dosya işaretçisinin geçerli konumundan dosyadan bir satır okur ... bir csv dosyasından okurken satır geçerli konumdan en yakın sınırlayıcıya veya metin satırının sonlandırıcısı." Bu nedenle, "dosyanın tamamı yazılıyor" gerçeğine katılmıyorum. FILE_ANSI koymaya çalıştı, hiçbir şey vermiyor. Sondaki boş satırla ilgili olarak: Tam olarak anlamadım, hangi satırdan bahsettiğinizi açıklayın.
 
DenisR :
MQL5 belgelerine göre, FileReadString işlevi "dosya işaretçisinin geçerli konumundan dosyadan bir satır okur ... bir csv dosyasından okurken, satır geçerli konumdan en yakın sınırlayıcıya veya metin satırının sonlandırıcısı." Bu nedenle, "dosyanın tamamı yazılıyor" gerçeğine katılmıyorum. FILE_ANSI koymaya çalıştı, hiçbir şey vermiyor. Sondaki boş satırla ilgili olarak: Tam olarak anlamadım, hangi satırdan bahsettiğinizi açıklayın.

Bu, doğru bir virgül bulursa, kodlama eşleşmezse fark etmeyebilir.
Bir hata ayıklayıcı ile bir göz atacağım.
Ansi bayrağı ne anlama geliyor, hiçbir şey vermiyor, kodunuzu kopyaladı, bayrağı ekledi - her şey yolunda.
 
Ve işte dediğim gibi sonuçlar.
Ansi olmadan, abrucadabra okur ve virgül görmeden dosyanın sonuna gider.
Ansi ile her şey yolunda gider.
Ekleri gör.
Dosyalar:
 
-Alexey- :
MetaEditor'da "Dosyadaki işlevlerin listesi" düğmesi bir liste açar. Aşağı kaydırırsanız, P harfi ile biter ve daha fazla hareket etmez (aşağıya bakan siyah üçgen devre dışı kalır), ancak R harfi için sınıflar vardır. Lütfen düzeltin.

Daha fazla ayrıntıya ihtiyacınız var.

Derleme, dosya, çözünürlük...

Bunu ChartObject.mqh dosyasında denedim - hem yukarı hem aşağı kaydırıyor.

 
mrProF :
Ve işte dediğim gibi sonuçlar.
Ansi olmadan, abrucadabra okur ve virgül görmeden dosyanın sonuna gider.
Ansi ile her şey yolunda gider.
Ekleri gör.
Benden ansi (5 505 1009) ile okur, yani. i şimdi 0 yerine nedense 5'e eşit , dosya boyutu eskisi gibi 505'e ve FileTell daha önce olduğu gibi 1009'a eşit.MT4'te aynı betik okur (15 505 505).
 
alexvd :

Daha fazla ayrıntıya ihtiyacınız var.

Derleme, dosya, çözünürlük...

Bunu ChartObject.mqh dosyasında denedim - hem yukarı hem aşağı kaydırıyor.

Interesting :
Ve en azından listenin yaklaşık boyutu ne? Belki listenin boyutunda bir sınır vardır ...

-Aleksey-

Tam 100 satır.


ilginç :

Listede 100'den 106'ya (ve her zaman farklı bir sayı, ancak 110 değil) görüntülenen kitaplıklarımdan birini (110 işlev) denedim.

Son derlemenin 100'den büyük satır sayısıyla ilgili bir sorunu var gibi görünüyor. ChartObject.mqh'deki listede yalnızca 62 satır var. Çözünürlük 1680x1050. Windows 7 yazı tipi düzeni - büyütülmüş yazı tipleri.

 
DenisR :
Benden ansi (5 505 1009) ile okur, yani. i şimdi nedense 0 yerine 5, dosya boyutu eskisi gibi 505 ve FileTell eskisi gibi 1009.MT4'te aynı script okuyor (15 505 505).
Hmm, bende 155091009 var.


 //+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                                                           mrProF |
//|                                                          http:// |
//+------------------------------------------------------------------+
#property copyright "mrProF"
#property link       "http://"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+


void OnStart ()
  { int handle;
   ulong i, size;
   double _Ask, _Bid;
   string str;
      
   handle = FileOpen ( "test.csv" , FILE_CSV | FILE_READ | FILE_ANSI , ',' );
   
   if (handle != INVALID_HANDLE )
     {
      size = FileSize (handle);
      
       for (i = 0 ; i < size; i++)
        {
         str = FileReadString (handle);
         _Ask = FileReadNumber (handle);
         _Bid = FileReadNumber (handle);
        
         if ( FileIsEnding (handle))
           {
             Print (i, " " ,size, " " , FileTell (handle));
             break ;
           }
        }
     }   
      
   FileClose (handle);

   return ;

  }
//+------------------------------------------------------------------+


Nasıl yapılacağını biliyorsanız, satır satır hata ayıklamayı deneyin ...

 
mrProF :
Hmm, bende 155091009 var.



İlk başta bende de 15 505 1009 vardı, ancak daha sonra terminal en son sürüme (408) güncellendi ve 5 505 1009 oldu. Ancak her durumda, dosya sonu işareti dosyanın boyutundan büyük olamaz. kendisi. Şimdi beni en çok endişelendiren bu.
 
alexvd :

Daha fazla ayrıntıya ihtiyacınız var.

Derleme, dosya, çözünürlük...

Bunu ChartObject.mqh dosyasında denedim - hem yukarı hem aşağı kaydırıyor.

404 ve 408'i oluşturur, Win XP Prof SP3, CPU 3.0 GHz ve RAM 3.0 Gb.

Yazı tipi boyutu ve diğer ayarlar (renk hariç) standarttır.

Eylemler aşağıdaki gibidir:

1. Bir kütüphane veya başka bir yazılım modülü oluşturuyoruz;

2. 100'den fazla bir dizi prosedür ve işlev oluşturuyoruz. Benim durumumda 110'du (göç kitaplığımla alay ettim).

daha spesifik olarak, 110 fonksiyon vardı ve modül yaklaşık 3310 satır boyutunda çıktı.

3. Modülü derleyin;

4. Fonksiyonların listesini görmeye çalışıyoruz.

Listede 100'den 106'ya kadar işlev gördüm (her yeniden derlemede, farklı sayıda ve işlev bileşimi). Aynı zamanda önce 106 fonksiyonun adı görüntülendi, ardından sayıları azalmaya başladı.

Aynı zamanda, 110 işlevin tümü listeye hiçbir zaman dahil edilmedi.

not

Başka bir garip an daha vardı - ilk derlemeden sonra listede kaç tane işlevin (ancak kesinlikle 50'den az) yeni işlevin görünmeyi bıraktığını bilmiyorum, iki veya üç yeniden derleme yapmak zorunda kaldım.

Liste oluşturma sırasını değiştirmeyi, örneğin, bir grup menüsü şeklinde (sınıfın "doldurulmasının" ayrı bir listede görüntülenmesiyle) bireysel sınıfları seçmeyi veya ayrı bir yönetici düzenlemeyi öneriyorum. Delphi'de nasıl yapıldığına benzer şekilde (böyle bir taleple ilgili bir tartışma zaten forumda vardı).

 
-Alexey- :
alexvd :

Daha fazla ayrıntıya ihtiyacınız var.

Derleme, dosya, çözünürlük...

Bunu ChartObject.mqh dosyasında denedim - hem yukarı hem aşağı kaydırıyor.

Son derlemenin 100'den büyük satır sayısıyla ilgili bir sorunu var gibi görünüyor. ChartObject.mqh'deki listede yalnızca 62 satır var. Çözünürlük 1680x1050. Windows 7 yazı tipi düzeni - büyütülmüş yazı tipleri.

Evet, çoğalttım.

Teşekkürler, bir göz atacağız.

Neden: