MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1416

 
ANDREY :

Açıklama için teşekkürler.

Bu arada sarı artıları sildim derleyici hata verdi. Yani bütün bu yapıda bir çeşit rol oynuyorlar. Ama ne .... Hala anlamıyorum. Dizelerin eklenmesi yalnızca mavi artıların yardımıyla gerçekleştirilirse neden bunlara ihtiyaç duyulur? Ve bu tasarımda daha fazlası, açıklamalarınıza bakılırsa, yanılmıyorsam hiçbir şey birbirine uymuyor .....

Ve string(i) hakkında... Tip dökümü hakkında.... Az çok netim. Bunun ne olduğu açık değil ..... string değişken tipinin adıdır. i - dizi öğesinin indeksini gösteren değişken sayaç. neden parantez () içindeyim ? Hala parantezlerin bir işlevin işareti olduğunu düşündüm. Örneğin Yazdır(). Ve bazı fonksiyonlarda parantez içinde çeşitli veriler girilir. Ve ne anlama geliyorlar veya parantezler i ve tüm bu yapı - string (i) ile ilgili olarak hangi işlevi yerine getiriyor. İlk bakışta, i değişkeninin int (integer) türünde olduğu ve ardından i değişkeninin türünü int'den string (string) olarak değiştirdiğiniz görülüyor. Ama öyle düşünmek , içinde bulunduğum parantezler tarafından izin verilmez.

Açıklama için teşekkürler.

Bu bir atama değil, i değişkenindeki bir değer dönüşümüdür.

daha sık görebilirsin

eStr+=( string )i+ ": " + DoubleToString (eArray[i], 4 )+ ", " ;
 
Alekseu Fedotov :

Bu bir atama değil, i değişkenindeki bir değer dönüşümüdür.

daha sık görebilirsin


Bahşiş için teşekkürler. i değişkeninin değerini dönüştürün. Kodum ne anlama geliyor?
1. i'nin değeri 0 idi,
(string)i+'dan sonra 1 , sonra 2 ve 30'a kadar böyle devam etti. O zaman neden (string) ve sadece   ben++?
2. i değişkeninin türü int idi ve (string)i+ sonra string oldu mu? O zaman bu bir değer dönüşümü değil, değişken tipi bir dönüşümdür.


Ve daha fazlası .... belki bana sarı artıların ne olduğunu açıklayabilirsin. Veya bunlar ne için?

 eStr + = string (i) + ": " + DoubleToString (eArray[i], 4 ) + ", " ;

Açıklama için teşekkürler.

 
ANDREY :

Bahşiş için teşekkürler. i değişkeninin değerini dönüştürün. Kodum ne anlama geliyor?
1. i'nin değeri 0 idi,
(string)i+'dan sonra 1 , sonra 2 ve 30'a kadar böyle devam etti. Öyleyse neden (string) ve sadece   ben++?
2. i değişkeninin türü int idi ve (string)i+ sonra string oldu mu? O zaman bu bir değer dönüşümü değil, değişken tipi bir dönüşümdür.


Ve daha fazlası .... belki bana sarı artıların ne olduğunu açıklayabilirsin. Veya bunlar ne için?

Açıklama için teşekkürler.

Tip dönüştürme veya açık tip döküm eşdeğerdir. Belgeler her iki ifadeyi de kullanır. Alexey'in rezervasyonunu, yani tür dönüşümünü doğru bir şekilde fark ettiniz ...

Sonraki: Birkaç satırımız var

  1. açıkça dize yazmak için kullanılan int türünden i (0 olsun
  2. ":"
  3. eArray[i], DoubleToString işlevi aracılığıyla dizgeye aktarılır (1.6251 olsun)
  4. ", "

Her yinelemede döngüde i'nin değeri artar ve oradan bu satıra girer ...

Lütfen artıların bu satırlar arasına yerleştirildiğini unutmayın. Bu artılar, bu satırları bir satıra ekler. Sonuç, "0: 1.6251" dizesidir ve ardından bu dize, += operatörüyle eStr değişkenindeki dizeye eklenir


 
ANDREY :

Bahşiş için teşekkürler. i değişkeninin değerini dönüştürün. Kodum ne anlama geliyor?
1. i'nin değeri 0 idi,
(string)i+'dan sonra 1 , sonra 2 ve 30'a kadar böyle devam etti. Öyleyse neden (string) ve sadece   ben++?
2. i değişkeninin türü int idi ve (string)i+'dan sonra string oldu mu? O zaman bu bir değer dönüşümü değil, değişken tipi bir dönüşümdür.


Ve daha fazlası .... belki bana sarı artıların ne olduğunu açıklayabilirsin. Veya bunlar ne için?

Açıklama için teşekkürler.

Sarı artı işaretleri yardımıyla Print() kullanarak yazdırdığınız bir dize (metin) oluşturursunuz;

Aynısını StringConcatenate() işleviyle de yapabilirsiniz.

eStr+= StringConcatenate (( string )i, ": " , DoubleToString (eArray[i], 4 ), ", " );
 
Alekseu Fedotov :

Sarı artı işaretleri yardımıyla Print() kullanarak yazdırdığınız bir dize (metin) oluşturursunuz;

Aynısını StringConcatenate() işleviyle de yapabilirsiniz.

MQL5'te MQL4'ten farklı çalıştığı için bu işlevi kullanmanızı önermiyorum. Bu nedenle, MQL5 diline geçerken anlamada zorluklar olabilir.


Her ne kadar yanılıyor olsam da...

mql4

 string    StringConcatenate ( 
   void argument1,         // первый параметр любого простого типа  
   void argument2,         // второй параметр любого простого типа 
   ...                     // следующий параметр любого простого типа 
   );

mql5

 int    StringConcatenate ( 
   string &  string_var,   // строка для формирования 
   void argument1         // первый параметр любого простого типа  
   void argument2         // второй параметр любого простого типа 
   ...                     // следующий параметр любого простого типа 
   );

Gördüğünüz gibi, mql5'te basit dize eklemeye çok benzer.

 eStr+= string (i)+ ": " + DoubleToString (eArray[i], 4 )+ ", " ;
 StringConcatenate (eStr, i, ": " , eArray[i], ", " );
Ve tür dönüştürme, bu işlevde ek endişeler olmadan gerçekleşir.
 
Alexey Viktorov :

MQL5'te MQL4'ten farklı çalıştığı için bu işlevi kullanmanızı önermiyorum. Bu nedenle, MQL5 diline geçerken anlamada zorluklar olabilir.

Değerli bilgi için teşekkürler

 
Alekseu Fedotov :

Sarı artı işaretleri yardımıyla Print() kullanarak yazdırdığınız bir dize (metin) oluşturursunuz;

Aynısını StringConcatenate() işleviyle de yapabilirsiniz.

Benim için yeni bilgiler için teşekkürler.

 
ANDREY :

Değerli bilgi için teşekkürler

Aceleyle yazdığım yazımı güncelledim.

Ve size bir şey açıklayan herkese ne kadar minnettar olduğunuz zaten herkes için açık. Ayrı mesajlarla konuyu uzatmayın...

 
Alexey Viktorov :

Sonraki: Birkaç satırımız var

  1. açıkça dize yazmak için kullanılan int türünden i (0 olsun
  2. ":"
  3. eArray[i], DoubleToString işlevi aracılığıyla dizgeye aktarılır (1.6251 olsun)
  4. ", "




1.6251 neden i kadar açık bir şekilde dizeye aktarılamıyor ? Bu daha kısa ve bilgi işlem kaynaklarından tasarruf sağlıyor ..... bana öyle geliyor.

açıklama için teşekkürler

 
Alexey Viktorov :

Aceleyle yazdığım yazımı güncelledim.

Ve size bir şey açıklayan herkese ne kadar minnettar olduğunuz zaten herkes için açık. Ayrı mesajlarla konuyu uzatmayın...

TAMAM. O zaman, cevaplarınızın her biri için şükran varsayılan olarak ima edilecektir (bir değişkende saklanacaktır :):):) )... sakıncası yoksa.