Membaca CSV ke dalam Penimbal Penunjuk
Results 1 to 5 of 5

Thread: Membaca CSV ke dalam Penimbal Penunjuk

  1. #1
    Hai semua,

    Saya telah cuba memikirkan perkara ini. Mungkin seseorang di sini boleh membantu saya. Saya mempunyai fungsi ini yang membaca daripada .csv dan mengeluarkan nilai ke dalam penimbal indior, tetapi sejak MT4 dikemas kini, ia telah rosak. Mesej ralat adalah tatasusunan di luar julat. Pengkompil menunjukkan di mana pembolehubah tatasusunan [c] berada.

    Dimasukkan Kod #tetingkap_terpisah_harta #penimbal_indior_harta 2 #warna_indior_harta1 Perak #warna_indior_harta2 Hitam int init() { IndiorDigits(0); IndiorShortName(); SetIndexStyle(0,DRAW_LINE,STYLE_DOT,1,clrSilver); SetIndexBuffer(0,BALBuffer); SetIndexLabel(0,BAL); SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1,clrBlack); SetIndexBuffer(1,EQTBuffer); SetIndexLabel(1,EQT); return(0); } int OnCalculate(const int rates_total, const int prev_calculated, const datetime time#91;#93;, const double open#91;#93;, const double high#91;#93;, const double low#91;#93 ;, const double close#91;#93;, const long tick_volume#91;#93;, const long volume#91;#93;, const int spread#91;#93;) { GetChart(); return(0); } void GetChart() { string ECFile = 55033.csv; rentetan arr#91;5#93;; rentetan tmp; datetime dt#91;2000#93;; double val1#91;2000#93;; double val2#91;2000#93;; int c,i=0; int h = FailOpen(ECFile, FILE_CSV|FILE_READ,'~'); untuk (int c=0; !FileIsEnding(h) clt;2000; c ) { tmp = FileReadString(h); jika (FileIsEnding(h)) putus; StrToStringArray(tmp,arr,,); dt#91;c#93; = StrToTime(StringSubstr(arr#91;0#93;,6,4) . StringSubstr(arr#91;0#93;,3,2) . StringSubstr(arr#91;0#93;, 0,2)); val1#91;c#93; = StrToNumber(arr#91;1#93;); val2#91;c#93; = StrToNumber(arr#91;2#93;); } FileClose(h); c--; untuk (int i=0; ilt;=Bar; i ) { while(Masa#91;i#93; lt; dt#91;c#93;) c--; jika (c gt;= 0) { BALBuffer#91;i#93; = val1#91;c#93;; EQTBuffer#91;i#93; = val2#91;c#93;; } } }
    Beginilah rupa fail .csv input.

    Kod dimasukkan 03/02/2014,350306.85,350306.85 04/02/2014,350306.85,350306.85 05/02/02/2014,350306.85,350306.85 06//2014,350306.85,350306.85 11/02/2014,350306.85,350306.85 12/02/2014,350306.85,350306.85 13/349867.08 18/02/2014,349867.08,349867.08 19/02/2014,349867.08,349867.08.00.0498.00.00.00.00. 2014,347892.08,347892.08 26/02/2014,347892.08,347892.08 27/02/2014,347892.08,347892.08 28/02/2014,347892.08,347892.08 03/03/2014,347892.08,347892.08 04/03/2014,347892.08,347892.08 05/03/2014,347892.08,347892.08 06/03/2014,347892.08,347892.08 07/03/2014,347892.08,347892.08 10/03/2014,347892.08,347892.08 11/03/2014,347892.08,347892.08 12/03/2014 ,347892.08,347892.08 13/03/2014,347453.05,347453.05 14/03/2014,347453.05,327345.29 17/03/2014,347453.05,347453.05 96.66 19/03/2014,342426.72,339219.78 20/03/2014,342426.72,330867.13 21/03/203/2014,342426.72,331911. 2014,342427.72,334545.23 27/03/2014,342427.72,338089.43 28/03/2014,337334.64,343461.25
    Saya sebenarnya bukan seorang pengekod, jadi ia agak kemas.

    Sebarang penyelesaian/cadangan amatlah dihargai.
    terima kasih.

  2. #2
    Oops.. yang saya maksudkan ialah ia tidak membaca baris terakhir daripada fail .csv

  3. #3
    Dimasukkan Kod untuk (int i=0; ilt;=Bar; i ) Pengindeksan untuk tatasusunan seperti Time,Open dll pergi dari 0 ke Bar-1 Anda cuba mengakses Time[Bar], yang tidak wujud. Tukar kepada Kod Disisipkan untuk (int i=0; ilt;Bar; i )

  4. #4
    Terima kasih atas cadangan @Gumrai ! Saya terpaksa berbuat demikian dan juga mengalih keluar #property yang ketat untuk ia berfungsi, tetapi masalah yang saya hadapi sekarang ialah ia tidak membaca baris terbaharu kod tersebut. hrm..

  5. #5
    Okay selesai. Masalahnya sebenarnya jika (FileIsEnding(h)) pecah; . Selepas saya mengeluarkannya, dan meletakkan kembali #properties dengan ketat, semuanya baik-baik saja !!

Kebenaran Posting

  • Anda tidak boleh menghantar thread baru
  • Anda tidak boleh membalas kiriman
  • Anda tidak boleh mengedit siaran anda
  • Anda tidak boleh menyiarkan lampiran
  •  
  • Kod BB Hidup
  • Smilies Hidup
  • Kod [IMG] adalah Hidup
  • Kod [VIDEO] adalah Hidup
  • Kod HTML Tidak Hidup
Polisi Kuki
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.