[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 385

 
nadya :
tabii ki olabilir, eğer sizin bu değişkeniniz uygun tipe sahipse
Bir hücre. Ve bunun gibi - yalnızca sabitlerle: "diziler, virgülle ayrılmış tek boyutlu bir sabit dizisiyle başlatılır. Dizi, küme parantezleriyle çerçevelenir."
 
kifa911 :
Günün iyi zamanı! Dizi başlatma hakkında bir sorum var. Öğretici şunu söylüyor: Bir dizi yalnızca uygun türdeki sabitlerle başlatılabilir . Tek boyutlu ve çok boyutlu diziler, virgülle ayrılmış tek boyutlu sabitler dizisiyle başlatılır. Dizi küme parantezleri içine alınır. Bu durumda, "sabit" kelimesi kafamı karıştırıyor. Belirli bir dizi dizinine bir değişken aracılığıyla bir değer atanamaz.

atama mümkündür, ancak başlatma sırasında değil.

Durum budur:

 int aaa = 4 ;
int bbb[ 5 ] = { 0 , 1 , 2 , 3 , 0 };
bbb[ 4 ] = aaa;

izin verilen

ve durum

 int aaa = 4 ;
int bbb[ 5 ] = { 0 , 1 , 2 , 3 , aaa};

bir hatayla sonuçlanacak

 
nadya :
tabii ki olabilir, eğer sizin bu değişkeniniz uygun tipe sahipse

o zaman soru şu. bazı işlevler, örneğin, başvuruya göre iki veri dizisini iletmelidir:

 void SomeFunction( int & firstmassive[][ 3 ], double & secondmassive[][ 3 ])

{

 int iCount=- 1 ,

      ifirst,isecond,ithird;

 double dfirst,dsecond,dthird;

...

 iCount++;

  firstmassive[iCount][ 0 ]=ifirst;firstmassive[iCount][ 1 ]=isecond;firstmassive[iCount][ 2 ]=ithird;

  secondassive[iCount][ 0 ]=dfirst;secondmassive[iCount][ 1 ]=dsecond;secondmassive[iCount][ 2 ]=dthird;

  print( "iCount= " +iCount+ " firstmassive_2= " +firstmassive[iCount][ 1 ]+ " isecond= " +isecond);

...

return ( 0 );

}

Bu işlevi çalışmaya bıraktığımda, terminaldeki "uzmanlar" sekmesinde bu tür mesajlar var, örneğin:

 iCount= 0 firstmassive_2= 0 isecond= =15
iCount= 1 firstmassive_2= 0 isecond= =25
Sonuncusu bir değere sahip olmasına rağmen, değişkenin değerinin diziye aktarılmadığı ortaya çıktı. Neyi yanlış yaptım?
 
artmedia70 :

Dahil edilen dosyanın adı: GetExstremumZZPrice.mqh ???

Terminal_folder/experts/include terminal klasöründe bulunur ???


Adı, kitaplıklar klasöründeydi, şimdi içerme klasörüne taşındı, ancak sonuç aynı
 
kifa911 :

o zaman soru şu. bazı işlevler, örneğin, başvuruya göre iki veri dizisini iletmelidir:

Bu işlevi çalışmaya bıraktığımda, terminaldeki "uzmanlar" sekmesinde bu tür mesajlar var, örneğin:

Sonuncusu bir değere sahip olmasına rağmen, değişkenin değerinin diziye aktarılmadığı ortaya çıktı. Neyi yanlış yaptım?

Bir hata görmüyorum. belki başka biri sana yardım edebilir
 
Soruyu tekrarlıyorum, lütfen dosyalarla yapılan işlemleri açıklayın. Bir dosyaya bazı bilgiler yazıldıktan sonra, daha sonra dosyadan kısmen silinebilir mi? Diyelim ki bir metin belgesine birkaç satır yazdık ve sonra fazla satırları sildik veya dosya işlemleri işlevlerini kullanarak düzelttik - bu mümkün mü?
 
fore-x :
Soruyu tekrarlıyorum, lütfen dosyalarla yapılan işlemleri açıklayın. Bir dosyaya bazı bilgiler yazıldıktan sonra, daha sonra dosyadan kısmen silinebilir mi? Diyelim ki bir metin belgesine birkaç satır yazdık ve sonra fazla satırları sildik veya dosya işlemleri işlevlerini kullanarak düzelttik - bu mümkün mü?
Yapabilir.
 
Zhunko :
Yapabilir.
   if (text != " " ) 
    {
    handle = FileOpen (filename, FILE_CSV | FILE_READ | FILE_WRITE , ';' ); //открыл файл
     FileSeek (handle, 0 , SEEK_SET );                               //переместил указатель   
     while ( FileIsEnding (handle)==false)                              
      {
      pos = StringFind ( FileReadString (handle),symb, 0 );             //нашел нужную строку...  
       if (pos >= 0 ) break ;                                   //...файловый указатель в конце строки
       if ( FileIsEnding (handle)==true) break ;                            
      }
                                 
      ?????????????????? //тут что делать, как удалить или перезаписать выбранную строку
    
     FileWrite (handle,text);     //записываем новую строку
     FileClose (handle);           //закрываем файл
    }  
Pliz'i gönder. Şimdi sıranın başına geçmek için ne yapılması gerekiyor? Ve sonra ne?
 
kifa911 :
Günün iyi zamanı! Dizi başlatma hakkında bir sorum var. Öğretici şunu söylüyor: Bir dizi yalnızca uygun türdeki sabitlerle başlatılabilir. Tek boyutlu ve çok boyutlu diziler, virgülle ayrılmış tek boyutlu sabitler dizisiyle başlatılır. Dizi küme parantezleri içine alınır. Bu durumda, "sabit" kelimesi kafamı karıştırıyor. Belirli bir dizi dizinine bir değişken aracılığıyla bir değer atanamaz.

Bu yüzden ayırt etmek gerekir: başlat ve ata.
 
Vinin :
Ve dün veya yarın için bir çizgi koyarsanız?

İlginiz için teşekkür ederim, ancak sorunuzun özünü anlamadım, prensip olarak dün veya yarın için yapabilirsiniz. Çizgi herhangi bir tarihte yerleştirilebilir ve çizelge ona ulaştığında danışman işe yarayacak mı? Ya da bir şeyi anlamıyorum, açıklaması zor değilse.