[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 470

 
iliaalyoshin >> :


Farklı hileler? Örneğin hangisi?

if (NormalizeDouble(a, 4)==NormalizeDouble(b, 4)) { ... }

 
sergeev >> :

if (NormalizeDouble(a, 4)==NormalizeDouble(b, 4)) { ... }


Ben de denedim ve her ihtimale karşı, Rakamlar yerine 4, sonra 5, sonra 6 yazdım ... Çalışmıyor!
 


Teşekkür ederim! Gerçekten de, makale çok bilgilendirici. Ancak MetaEditor'da bool CompareDoubles işlevini bulamadım ...
 


Ya da, görünüşe göre, tam olarak anlamıyorum ya da daha doğrusu, bir kitaplığın ne olduğunu hiç anlamıyorum?
 
iliaalyoshin писал(а) >>


Ya da, görünüşe göre, tam olarak anlamıyorum ya da daha doğrusu, bir kitaplığın ne olduğunu hiç anlamıyorum?


Gerçek sayıları karşılaştırma işlevi
 //+------------------------------------------------------------------+
//| correct comparison of 2 doubles                                  |
//+------------------------------------------------------------------+
bool CompareDoubles( double number1, double number2)
  {
   if (NormalizeDouble(number1-number2, 8 )== 0 ) return ( true );
   else return ( false );
  }
 
Profesyonel arkadaşlar, bana yardım edin.
Söyle bana, lütfen, nasıl burada olacağım.

Dosyadaki sayıları ilgili dizilere okumak istiyorum.

dosyadaki sayılar şöyle görünür: 1.2121;1.2233;1.3434;1.4545

Onlar için diziler oluşturuyorum: double s1[], s2[], r1[], r2[]

Başlatma aşamasında şunu okudum:

k=0;
//----------------------------------------------

Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";");// Открытие файла
if(Handle<0) // Неудача при открытии файла
{
if(GetLastError()==4103) // Если файла не существует,..
Alert("Нет файла с именем ",File_Name);//.. извещаем трейдера
else // При любой другой ошибке..
Alert("Ошибка при открытии файла ",File_Name);//..такое сообщ
PlaySound("Bzrrr.wav"); // Звуковое сопровождение
return;
}
while(FileIsEnding(Handle)==false) // До тех пор, пока файловый ..
{ // ..указатель не в конце файла
//--------------------------------------------------------- 5 --
S_1 =StrToDouble(FileReadString(Handle));//
R_1 =StrToDouble(FileReadString(Handle));
S_2 =StrToDouble(FileReadString(Handle));
R_2 =StrToDouble(FileReadString(Handle));
s1[k]=S1; s2[k]=S_2; r1[k]=R_1; r2[k]=R_2;
k=k+1;
if(FileIsEnding(Handle)==true) // Файловый указатель в конце
break; // Выход из чтения и рисования
//--------------------------------------------------------- 6 --
}
FileClose( Handle ); // Закрываем файл
PlaySound("bulk.wav"); // Звуковое сопровождение

ama maalesef diziler dolmaz...

Lütfen nasıl yapacağınızı tavsiye edin...
 

Посоветуйте, как тут быть....

İlk olarak, csv dosyalarında öğeler "," ile ayrılır ve ";" ile değil.
İkinci olarak, dizileriniz dosyanın her satırının ilk öğesiyle doldurulmalıdır, çünkü Önce tüm dizeyi FileReadString komutuyla çıkarır , ardından tek bir gerçek sayıya dönüştürürsünüz ve sonraki FileRead komutu dosyadaki bir sonraki satırda çalışır.

Okumayı şu şekilde düzenleyebilirsiniz:

for(;;) {
str=FileReadString(Handle);
s1[k] =StrToDouble(StringSubstr(str,0,6));
s2[k] =StrToDouble(StringSubstr(str,7,6));
r1[k] =StrToDouble(StringSubstr(str,14,6));
r2[k] =StrToDouble(StringSubstr(str,21,6));
k++;
if(FileIsEnding(Handle)) break;
}


Çalışmalı...ama emin değilim :)

 
Axmed писал(а) >>

İlk olarak, csv dosyalarında öğeler "," ile ayrılır ve ";" ile değil.
İkinci olarak, dizileriniz dosyanın her satırının ilk öğesiyle doldurulmalıdır, çünkü Önce tüm dizeyi FileReadString komutuyla çıkarırsınız, ardından tüm dizeyi tek bir gerçek sayıya dönüştürürsünüz ve sonraki FileRead komutu dosyadaki bir sonraki satırda zaten çalışır.

Okumayı şu şekilde düzenleyebilirsiniz:

for(;;) {
str=FileReadString(Handle);
s1[k] =StrToDouble(StringSubstr(str,0,6));
s2[k] =StrToDouble(StringSubstr(str,7,6));
r1[k] =StrToDouble(StringSubstr(str,14,6));
r2[k] =StrToDouble(StringSubstr(str,21,6));
k++;
if(FileIsEnding(Handle)) break;
}


Çalışmalı...ama emin değilim :)


Varsayılan ayırıcı ";" şeklindedir, ancak herhangi birini kullanabilirsiniz.
 
Axmed писал(а) >>

Yazmadığın bir şey...

 
Vinin писал(а) >>


Varsayılan ayırıcı ";" şeklindedir, ancak herhangi birini kullanabilirsiniz.


CSV - Virgülle Ayrılmış Değerler. Varsayılan sınırlayıcı olan ","'dir. ";" ile ayırma çok daha az yaygındır ve genel olarak MQL4'te desteklendiğinden emin değilim.

Yazmadığın bir şey...

Yazdıklarımda özellikle neyi beğenmedin?