[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.

[Deleted]  

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?
[Deleted]  

+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");

[Deleted]  
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
[Silindi]  
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.