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

 
EMPTY_VALUE'u 1797 yerine " BOŞ_DEĞER " olarak yazdırmak mümkün mü......?
 
Fast235 :
EMPTY_VALUE'u 1797 yerine " BOŞ_DEĞER " olarak yazdırmak mümkün mü......?

daha fazla...kod

"BOŞ_DEĞER" 1797 olamaz......

 
MakarFX :
daha fazla...kod
 while ( CopyBuffer (handle,buffer_num,Start_bar,Count_bar,buffer) == Count_bar && ! _StopFlag )
        {
         //--- в цикле проверяем номера буфера
         for ( int ii= 0 ; ii<Count_bar; ++ii)
            result_output += "\n" +name
                            + "[" + IntegerToString (buffer_num)+ "]"
                            + "[" + IntegerToString (ii)+ "]"
                            + "=" + DoubleToString (buffer[ii], _Digits );
 
Fast235 :
tam olarak ne yazdırmanız gerekiyor?
 
MakarFX :
tam olarak ne yazdırmanız gerekiyor?

Teşekkür ederim,

tek bir yerde yalnızca EMPTY_VALUE olabilir))

 
Fast235 :

Teşekkür ederim,

tek bir yerde yalnızca EMPTY_VALUE olabilir))

Senin kadar uzman değilim ama...

 if ( result_output> 0 ) Print ( result_output );

else

Print ( " EMPTY_VALUE " ); 
 
class TestClass
{
   private :
     double cValue1;
   public :
     double Value1()
    { return cValue1;}

     void SetValue1( int param, double value )
    {
       if (param> 0 )cValue1= value ;
    }
};

void TestFunction()
{
  TestClass test;
  test.SetValue1( 1 , 0.5 );
}

onun yerine isterim

test.SetValue1( 1 , 0.5 );

kaydı kullanabilmek

test.Value1( 1 )= 0.5 ;

Mümkünse, aşırı yük yardımıyla bundan şüpheleniyorum. Ancak bilgi ve hayal gücü eksikliği.

Mümkünse, lütfen bana nasıl uygulanacağını söyleyin.

 
Yurij Kozhevnikov :

onun yerine isterim

kaydı kullanabilmek

Mümkünse, aşırı yük yardımıyla bundan şüpheleniyorum. Ancak bilgi ve hayal gücü eksikliği.

Mümkünse, lütfen bana nasıl uygulanacağını söyleyin.

 class TestClass
{
   private :
     double cValue1;
   public :
     double Value1()
    { return cValue1;}

     void SetValue1( int param, double value )
    {
       if (param> 0 )cValue1= value ;
    }
     void operator =( const double value ) { cValue1 = value ; }
};
//+------------------------------------------------------------------+
void OnStart()
{
   TestClass t;
   t = 123.456 ;
   Print( "Value1() = " , t.Value1());       // Value1() = 123.456
}
//+------------------------------------------------------------------+

https://www.mql5.com/ru/docs/basis/function/operationoverload

Документация по MQL5: Основы языка / Функции / Перегрузка операций
Документация по MQL5: Основы языка / Функции / Перегрузка операций
  • www.mql5.com
Перегрузка операций позволяет использовать операционную нотацию (запись в виде простых выражений) к сложным объектам - структурам и классам. Запись выражений с использованием перегруженных операций упрощает восприятие исходного кода, так как более сложная реализация сокрыта. Для примера рассмотрим широко применяемые в математике комплексные...
 

Teşekkür ederim aklıma böyle bir uygulama geldi ama Value1'in kendisinin olmamasından dolayı bu pek doğru değil. Yani oluşturduğum örnek elbette son derece basitleştirilmiş ancak sınıfın ana değerinin bu olmadığı, bu tür belirli sayıda değerlerin olabileceği ve böyle bir yapının şu şekilde tanımlanabileceği anlaşıldı. her biri.

Yoksa böyle bir uygulamanın yalnızca aşırı yüklemenin uygulanacağı ayrı bir sınıf veya yapıyı tanımlaması ve bu sınıfta oluşturulan türün değişkenlerini tanımlaması mümkün müdür? Ancak, atama işlemine diğer sınıf değişkenleri dahil edilirse, yine toplanmaz.

Aslında, vbs içindeki Let/Set/Get yöntemlerine benzer bir şey uygulamak istedim.

"Property Let/Set/Get" Procedures
  • www.herongyang.com
This section provides a tutorial example on how to use 'Property Let/Set/Get' procedure to define public properties.  Properties defined through public variables are simple to use. But you can not use them to update internal variables or other properties when their values are changes. A better way to define public properties is to use...
 
Fast235 :
EMPTY_VALUE'u 1797 yerine " BOŞ_DEĞER " olarak yazdırmak mümkün mü......?

DoubleToString'i aşırı yüklemeniz yeterlidir, boşsa "EMPTY_VALUE" dizesini döndürür, aksi takdirde :: DoubleToString'i arayın