MQL5'te OOP hakkında sorular - sayfa 62

 
Dmitry Fedoseev :

Sonunda çok ilginç bir şey. Bu "Buharlı Tren" modeli mi?

Dima, buraya sürükleme, sakin ol)))

 
Vladimir Simakov :

Bir şekilde yapmıyorsun.)

Not Düzeltildi

Sihirbaz!

çalışıyor! ep!

 void OnStart (){
   CTest test;
   Print ( "1.-----------------------" );
   Print (test.JSon());
   Print ( "2.-----------------------" );
   test.a = 123456789 ;
   test.b = 9999999999999999 ;
   Print (test.JSon());
 }

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) 1.-----------------------

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) {

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) "Ölçek":{

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) "a":10,

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) "b":0.369,

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) "t":"Merhaba"

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) },

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) "a":555,

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) "b":-9223372036854775808

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) }

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) 2.----------------------

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) {

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) "Ölçek":{

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) "a":10,

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) "b":0.369,

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) "t":"Merhaba"

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) },

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) "a":123456789,

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) "b":999999999999999999

2020.05.21 20:56:34.192 tst_json(EURUSD,H1) }


serin! genel olarak, biraz karmaşık bir şekilde, json'a basit nesneler yükleyebilirsiniz ve genellikle yaptığınız gibi ikili veriler aracılığıyla değil

TEŞEKKÜR ETMEK!

 
Vladimir Simakov :

Dima, buraya sürükleme, sakin ol)))

Kulübünüzde burada ve megalomani var. Ve o kaleciden sonra kim bundan bahseder ki burada. Senden başka kimsenin okuyabileceğini mi sanıyorsun?

Mesele şu ki, tüm bu bilgeliklerde tam olarak ustalaşmaya muktedir olmayan sizsiniz. Küçük bir parça koparıyorsunuz ve hemen, halka açık bir şekilde megalomaninizi yoğurarak bir gösteri düzenliyorsunuz. 15 yıl önce bu bilgiden elitizmiyle gurur duymak mümkündü ve şimdi bu konuda yığınla kitap ve kurs var.

 
Igor Makanu :

Sihirbaz!

çalışıyor! ep!


serin! genel olarak, biraz karmaşık bir şekilde, json'a basit nesneler yükleyebilirsiniz ve genellikle yaptığınız gibi ikili veriler aracılığıyla değil

TEŞEKKÜR ETMEK!

Böyle görünmesi gerekir, satır sonu gereksizdir, netlik içindi:

#define COMMA (text==NULL? "{" : "," )
#define VALUE(dVal) Push(#dVal,dVal)
#define STRUCT(dVal) PushStruct(#dVal,dVal.JSon())

class CJSon{
   string text;
public :
   CJSon():text(NULL){}
   CJSon* Push( string key, string value ) {text+=COMMA+ "\"" +key+ "\":\"" + value + "\"" ; return & this ;}
   CJSon* PushStruct( string key, string value ) {text+=COMMA+ "\"" +key+ "\":" + value ; return & this ;}
   CJSon* Push( string key, long value )   {text+=COMMA+ "\"" +key+ "\":" +( string ) value ; return & this ;}
   CJSon* Push( string key, double value ) {text+=COMMA+ "\"" +key+ "\":" +( string ) value ; return & this ;}
   string Finish()   { return text+= "}" ;}
};

Ve diziler ve bir dizi yapı için yöntemler ekleyin (çok tembel). Ve prensip olarak, kod tabanında çalıştırabilirsiniz.

Kim önce gelirse ona veririm.

Not: Gidip kontrol edeceğim)))

 
Vladimir Simakov :

Böyle görünmesi gerekir, satır sonu gereksizdir, netlik içindi:

Ve diziler ve bir dizi yapı için yöntemler ekleyin (çok tembel). Ve prensip olarak, kod tabanında çalıştırabilirsiniz.

Kim önce gelirse ona veririm.

Not: Gidip kontrol edeceğim)))

KB'ye koy

IMHO, gerekli bir şey!

json köklü bir format, C# ve MQL'de %100 bire bir sınıflara sahip olabilmek ve çalışma zamanında modellerin yüklenmesini organize edebilmek benim için uygun - şimdilik, bu yönde takarak

ama burada ve orada ikili verileri sürmek .... iyi, artık bir yenilik değil ve sadece tembel insanlar bunu yapamaz)))


Not: Python da json ile sorunsuz çalışıyor gibi görünüyor, Metaquotes'un pitonistlere yeni MT5 yetenekleriyle ne verdiği açık değil - aptalca tarihsel verileri dışarı pompalamak mı? - anlam? sorun değildi amk

 
Vladimir Simakov :

Böyle görünmesi gerekir, satır sonu gereksizdir, netlik içindi:

Ve diziler ve bir dizi yapı için yöntemler ekleyin (çok tembel). Ve prensip olarak, onu kod tabanında çalıştırabilirsiniz.

Kim önce gelirse ona veririm.

Not: Gidip kontrol edeceğim)))

Ve böyle bir nesne yaratma ne kadar hızlı çalışır? Kullanımı ne kadar uygundur? Bitirmek için başka bir makro kullanmak daha iyi olmaz mıydı? Tabii ki, görev etkilemekse, o zaman kuşkusuz, etki öldürücüdür.

 
Vladimir Simakov :

Böyle görünmesi gerekiyor, satır sonu gereksiz, netlik içindi:

VS'de kontrol edildi, panodan sorun yok {"test":{"a":10,"b":0.369,"t":"Hi"},"a":123456789,"b":999999999999999}

editöre koy:

 public class Rootobject
    {
         public Test test { get ; set ; }
         public int a { get ; set ; }
         public long b { get ; set ; }
    }

     public class Test
    {
         public int a { get ; set ; }
         public float b { get ; set ; }
         public string t { get ; set ; }
    }
 
Dmitry Fedoseev :

Ve böyle bir nesne yaratma ne kadar hızlı çalışır? Kullanımı ne kadar uygundur? Bitirmek için başka bir makro kullanmak daha iyi olmaz mıydı? Tabii ki, görev etkilemekse, o zaman kuşkusuz, etki öldürücüdür.

Ve hızlı bir şekilde ihtiyacınız varsa, ikili dosyayı sorunsuz bir şekilde sürün. Bir dize bir boşaltmadır, elbette N karakter için hemen bellek ayırabilirsiniz. Burada tek ek yük
text==NULL? "{" : ","

Ancak, derleyicinin optimize etmesi ve kaldırması gereken tam da budur. Bu nedenle text(NULL) başlatıldı, text("{") değil

 
Vladimir Simakov :
Ve hızlı bir şekilde ihtiyacınız varsa, ikili dosyayı sorunsuz bir şekilde sürün. Bir dize bir boşaltmadır, elbette N karakter için hemen bellek ayırabilirsiniz. Burada tek ek yük

Ancak, derleyicinin optimize etmesi ve kaldırması gereken tam da budur. Bu nedenle text(NULL) başlatıldı, text("{") değil

Bundan bahsediyorum: (CJSon()).V...

 
Dmitry Fedoseev :

Bundan bahsediyorum: (CJSon()).V...

Ve sorun nedir, yığında 12 bayt bellek ayırın, dize nesnesinin ne olduğundan emin değilim?