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

 
Axmed писал(а) >>


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.


int DosyaAç ( string dosya adı, int modu, int sınırlayıcı=';')
Giriş ve/veya çıkış için bir Dosya açar. Açılan dosyanın dosya tanımlayıcısını veya hata durumunda -1'i döndürür. Hata hakkında daha fazla bilgi almak için GetLastError() işlevini çağırmanız gerekir.
Notlar: dosyalar yalnızca terminal_dir\experts\files klasöründe (Uzman Danışmanın test edilmesi durumunda terminal_dir\tester\files ) veya alt klasörlerinde açılabilir.
FILE_BIN ve FILE_CSV modlarını aynı anda kullanamazsınız.
FILE_WRITE, FILE_READ ile birleştirilmezse sıfır uzunlukta bir dosya açılır. Açılmadan önce dosyada veri olsa bile yok edilecektir. Mevcut bir dosyaya veri eklemek gerekirse, FILE_READ | FILE_WRITE.
FILE_READ, FILE_WRITE ile birleştirilmezse, dosya yalnızca zaten varsa açılacaktır. Dosya yoksa, onu FILE_WRITE modunu kullanarak oluşturabilirsiniz.
Tek bir yürütülebilir modül içinde aynı anda en fazla 32 dosya açılabilir. Bir modülde açılan dosya tanımlayıcıları diğer modüllere (kütüphaneler) aktarılamaz.
Seçenekler:
dosya adı - Dosya adı.
mod - Açılış yöntemi. Bir değer veya bunların bir kombinasyonu olabilir: FILE_BIN, FILE_CSV, FILE_READ, FILE_WRITE.
sınırlayıcı - csv dosyaları için sınırlayıcı karakter. Varsayılan karakter ';'.
Misal:
 int tanıtıcı;
  handle=FileOpen("my_data.csv",FILE_CSV|FILE_READ,';');
  if(işlem<1)
    {
     Print("dosya my_data.dat bulunamadı, son hata", GetLastError());
     dönüş(yanlış);
    }

Yardımı da okumanız gerekir.
 
Axmed >> :


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

Evet, bu değil.
";" - bu karakter varsayılan ayırıcı olarak kabul edilir.
FileReadString - satırın tamamını değil, dosyadaki işaretçinin geçerli konumundan sonraki sınırlayıcıya kadar okur.

 

Merhaba! Lütfen bana özel bir göstergeden gerekli değişkeni nasıl çağıracağımı söyleyin, GlobalVariableSet() / GlobalVariableGet()'i denedim - başka bir Uzman Danışmandan çağrıldığı ortaya çıktı, ancak göstergeden çalışmıyor.Şimdiden teşekkürler. ..

 
kara100 писал(а) >>

Merhaba! Lütfen bana özel bir göstergeden gerekli değişkeni nasıl çağıracağımı söyleyin, GlobalVariableSet() / GlobalVariableGet()'i denedim - başka bir Uzman Danışmandan çağrıldığı ortaya çıktı, ancak göstergeden çalışmıyor.Şimdiden teşekkürler. ..


hangi değişkeni ve hangi göstergeden almak istiyorsunuz?
 

+MP'den fiyat (satır 228) - (fiyat) seviyelerinin değerlerine ihtiyacım var

Dosyalar:
ymp_1.mq4  6 kb
 
kara100 писал(а) >>

+MP'den fiyat (satır 228) - (fiyat) seviyelerinin değerlerine ihtiyacım var


ödül değişkenini global düzeye taşımaya çalışın ve GlobalVariableSet("55",prise); start() fonksiyonunun hemen başında ve başka bir programdan, bunu şu şekilde alın double x=GlobalVariableGet("55");

 
Techno писал(а) >>


ödül değişkenini global düzeye taşımaya çalışın ve GlobalVariableSet("55",prise); start() fonksiyonunun hemen başında ve başka bir programdan, bunu şu şekilde alın double x=GlobalVariableGet("55");


denendi gibi ... global değişkenin tanımlanmadığını yazıyor, yani. global değişkenler göstergeden çıkmıyor.. Tekrar deneyeceğim..

 
kara100 писал(а) >>


denendi gibi ... global değişkenin tanımlanmadığını yazıyor, yani. global değişkenler göstergeden çıkmıyor.. Tekrar deneyeceğim..


kod nasıl düzeltilir buraya yaz
 
Arkadaşlar cevabınız için çok teşekkür ederim. açıklama dizeyi ikiye nasıl dönüştürebilirim?
StrToDouble() - yuvarlanmıyor :(

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; // Выход из start()
}
k=0;
while(FileIsEnding(Handle)==false) // До тех пор, пока файловый ..
{ // ..указатель не в конце файла
//--------------------------------------------------------- 5 --
ss1[k] = (FileReadString(Handle));
x1[k]=StrToDouble(ss1[k]);//
ss2[k] = (FileReadString(Handle));
rr1[k] = (FileReadString(Handle));
rr2[k] = (FileReadString(Handle));
k=k+1;
if(FileIsEnding(Handle)==true) // Файловый указатель в конце
break; // Выход из чтения и рисования
}
FileClose( Handle ); // Закрываем файл
PlaySound("bulk.wav"); // Звуковое сопровождение
//-----------------------------------------------
Alert(" ", ss1[0], " ", ss2[0], " ", rr1[0], " ", rr2[0], " x1== ", x1[0] );

Dize dizileri normal olarak dosyadan doldurulur. Ancak, bu dizeleri ikiye dönüştürmeniz gerekir.
bunu yapıyor:
x1[k]=StrToDouble(ss1[k]);
ancak, Uyarıda görüntülendiğinde, x1[0] = 0, bu yanlıştır. yani, tür dönüştürmede bir yerde bir hata var ...

Bu durum nasıl düzeltilir?
 
Morzh09 >> :

Друзья, спасибо большое, что откликнулись. уточнение, как преобразовать string в double?
StrToDouble() - не прокатывает :(
Строковые массивы заполняются из файла нормально. Но, необходимо преобразовать эти строки в double.
делаю это:
x1[k]=StrToDouble(ss1[k]);
но, при выводе в Алерте, x1[0] = 0, что неправильно. то есть, где-то тут ошибка в преобразовании типов...

Как такую ситуацию исправить?

Senaryonun tamamını yayınlar mısın? Dizi değişkeni bildirimleri vb. ile birlikte demek istiyorum.

Neden: