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

 
sss2019 :


Öyleyse neden FileReadString işlevini kullanıyorum, teoride, ya tüm dizgeyi bir değişkene ya da ayırıcıya kadar ve ilk ayırıcıya bir işaretçi düşünülmeli.

Basitçe, lütfen böyle bir csv dosyası satırından ayırıcılar arasındaki tüm verilerin nasıl çıkarılacağına dair bir örnek gösterin?

131322608;EURUSD;2;1;0;0;1346149440


HEPSİNİ OKUYABİLİR MİSİNİZ??? Yukarıda her şeyi ayrıntılı olarak anlattım.

örnek : FileOpen ( dosya adı ,FILE_CSV|FILE_READ,";");

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. Tek 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 ';'.

 
FAQ :


gag'a gerek YOK.

FileReadString() sınırlayıcıya kadar okur (belirtilmişse). Sınırlayıcı belirtilmemişse veya var olmayan bir sınırlayıcı belirtilmişse, FileReadString() satırın sonuna kadar okur (satır başı karakteri). Bu nedenle, yukarıdaki örnekte, FileFlush(), bir dize uzunluğu uzaklığına işaret eder.

Bu durumda StrToInteger(), dizedeki ilk sayısal değeri seçer ve onu [int] türüne dönüştürür.


Sınırlayıcıya kadar okunan şey, bunda bir soru yok. Ancak burada dosya işaretçisi satırın sonundadır. Çok tembel değildim, bir senaryo yazdım. Bu yüzden böyle yazıyorum.

 //+------------------------------------------------------------------+
//|                                                          111.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   int fileid = FileOpen ( "File.csv" , FILE_CSV | FILE_READ );
     int n1, n2;
      
       string ticket, ticket1;
      
       FileSeek (fileid, 0 , SEEK_SET );
      
      ticket = FileReadString (fileid);
       Print (ticket, " " , FileTell (fileid));
      ticket1= FileReadString (fileid);
       Print (ticket1, " " , FileTell (fileid));
      n1= FileReadNumber (fileid);
       Print (n1, " " , FileTell (fileid));      
      n2= FileReadNumber (fileid);
       Print (n2, " " , FileTell (fileid)); 
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+

Ayırıcı, gördüğünüz gibi belirtilmemiş.

06:54:18 111 EURUSD,H1: başarıyla yüklendi
06:54:18 111 EURUSD,H1: 131322608 37
06:54:18 111 EURUSD,H1: EURUSD 37
06:54:18 111 EURUSD,H1: 2 37
06:54:18 111 EURUSD,H1: 1 37
06:54:18 111 EURUSD,H1: uninit neden 0
06:54:18 111 EURUSD,H1: kaldırıldı

 
Mislaid :


06:54:18 111 EURUSD,H1: 131322608 37


Bu durumda StrToInteger(), dizedeki ilk sayısal değeri seçer ve onu [int] türüne dönüştürür.
 

Merhaba! ObjectCreate kullanılarak oluşturulmuş OBJ_TREND türünde bir nesne (yani bir eğilim çizgisi) var.

Soru: Bu eğilim çizgisinin herhangi bir zamanda aldığı SAYISAL değeri nasıl alabilirim, örneğin şu an (Zaman[0])

 
ikatsko :

Merhaba! ObjectCreate kullanılarak oluşturulmuş OBJ_TREND türünde bir nesne (yani bir eğilim çizgisi) var.

Soru: Bu eğilim çizgisinin herhangi bir zamanda aldığı SAYISAL değeri nasıl alabilirim, örneğin şu an (Zaman[0])


ObjectGetValueByShift()
 
drknn :

ObjectGetValueByShift()

Hemen yanıtladığın için teşekkür ederim?

 
WindowScreenshot işlevi tarafından alınan bir ekran görüntüsünü postaya göndermek için SendMail işlevi nasıl kullanılır?
 
Hayır, dosya FTP'ye gönderilebilir
 
FAQ :
Hayır, dosya FTP'ye gönderilebilir

İyi.

Sonra diğer tarafa gideceğim.

FTP'den gelen resimlerin gelen mektupta görüntülenmesini sağlamak mümkün müdür? (yani resim bir ek değildir ve mektup yalnızca ftp'ye bağlantılar içerir)

 

Guru, baykuşa söyle:

Sonuç olarak şudur: işlemden (henüz kapatılmamış) elde edilen kâr azalmaya başlar (işlemi açtım). Benim tarafımdan belirlenen işlem tutarının %X'ine ulaşıldığında robot işlemi kapatır. Rakamlarla, bu yaklaşık olarak: 1 $ (zaten işlemden elde ettik) kâr artıyor. Baykuş %80 durdurdu. Kar 1.2$ (ayrıca %80 değerinde). Piyasa tersine döndü ve (1.2*80%=0.96) baykuş ticareti kapattı.

Orada puan bulduğum %, başabaş baykuşlardı):

Teşekkür ederim.