Open Forex4you Account

Server รัน EA 1000 / ปี

สั่งชื้อคู่มือการโปรแรกม MQL4

Author Topic: การเก็บค่าไว้ใน Array  (Read 15536 times)

Hroyjank

  • Newbie
  • *
  • Posts: 10
การเก็บค่าไว้ใน Array
« on: สิงหาคม 18, 2014, 11:32:22 am »
ช่วยหน่อยครับ พอดีหาอ่านข้อมูลเก่าๆแล้วแต่ยังไม่สามารถเก็บค่าไว้ในArrayได้ คือผมอยากเก็บค่า X,Y, Price ตอนคลิกบนหน้าจอทุกครั้งที่คลืกก็จะเก็บค่าเอาไว้ครับ
ไม่ทราบว่า code ที่เขียนผิดตรงไหนครับช่วยแก้หน่อยครับ


double Stor_X[],
            Stor_Y[];
           
   

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
    {
     
   
      int      Window = 0;
         
      int      X = (int)lparam;
      int      Y = (int)dparam;
     
     
     
             
               if(id==CHARTEVENT_CLICK) //--- the mouse has been clicked on the chart
                 {
                   
                 
                     Stor_X[X]  = X;
                     Stor_Y[Y]  = Y;
                     
                     Print("Stor_X=", Stor_X[X]);// ปริ้นดูแล้วค่าที่ได้ยังเป็นศูนย์
                     Print("Stor_Y=", Stor_Y[Y]);// ปริ้นดูแล้วค่าที่ได้ยังเป็นศูนย์
                     
                     
                 }
   
    }   
                             

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: การเก็บค่าไว้ใน Array
« Reply #1 on: สิงหาคม 18, 2014, 11:59:52 am »
Stor_X[X]  = X;
Stor_Y[Y]  = Y;

ตรงนี้
  • ,[y] ต้องแทนค่าด้วยตัวเลขนะครับซึ่งเป็นมิติของตัวแปร array

เท่าที่ดู
int      X = (int)lparam;
int      Y = (int)dparam;

lparam , dparam 8nv พารามิเตอร์ของฟังก์ชั่นไม่ทราบว่ามันมีค่าอะไรครับ แนะนำให้ print ค่า x,y ออกมาดูก่อนดีกว่าครับว่ามีค่าหรือเปล่า

Hroyjank

  • Newbie
  • *
  • Posts: 10
Re: การเก็บค่าไว้ใน Array
« Reply #2 on: สิงหาคม 18, 2014, 02:21:45 pm »
ผมลองทำตามลิงค์นี่ดู http://www.thaiforexea.com/index.php/topic,1149.0.html
ปรากฏว่าผมต้องประกาศค่า

double Stor_X[],
            Stor_Y[];

ให้เป็น   double Stor_X[1000],
                       Stor_Y[1000]; 

ถึงจะสามาถเก็บค่าได้ ที่นี่ปัญหาก็คือมันเก็บได้ค่าเดียวโดยที่ค่า X,Y  จะต้องมีค่าไม่เกิน 1000 (ผมเข้าใจถูกใช่ไหมครับ) ที่นี่ถ้าผมจะเก็บ X,Y ให้ได้หลายๆค่า โดยที่ค่าเก่ายังอยู่ถ้ายังไม่มีคำสั่งลบ
ผมต้องเขียน code ยังไงครับ    (ต้องขอโทษด้วยครับไม่เข้าใจการใช้คำสั่ง array เลยครับ)   

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: การเก็บค่าไว้ใน Array
« Reply #3 on: สิงหาคม 18, 2014, 02:39:11 pm »
double Stor_X[1000],Stor_Y[1000]; 
คือการประกาศให้ array Stor_X กับ Stor_Y มีขนาด 1000 คือรับค่าได้ 1001 ตัว โดยเริ่มจาก Stor_X[0] ถึง Stor_X[1000]
วิธีเก็บค่าก็ใช้ loop วนไงครับเช่น

for(int i=0;i<1000;i++)
{
   Stor_X=I*10;
}
for( i=0;i<1000;i++)
{
   print(Stor_X);
}

Hroyjank

  • Newbie
  • *
  • Posts: 10
Re: การเก็บค่าไว้ใน Array
« Reply #4 on: สิงหาคม 18, 2014, 05:20:23 pm »
ขอบคุณครับท่านแอดมิน ตอนนีเก็บค่าได้ตามจำนวน ที่ต้องการแล้วครับ ;D

Hroyjank

  • Newbie
  • *
  • Posts: 10
Re: การเก็บค่าไว้ใน Array
« Reply #5 on: สิงหาคม 19, 2014, 02:11:23 pm »
ถามต่ออีกนิดครับ ถ้าจะเก็บค่า X,Y ไว้ใน array เดียวกันต้องเขียน code ยังไงครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: การเก็บค่าไว้ใน Array
« Reply #6 on: สิงหาคม 19, 2014, 04:41:16 pm »
ถามต่ออีกนิดครับ ถ้าจะเก็บค่า X,Y ไว้ใน array เดียวกันต้องเขียน code ยังไงครับ

ตรงนี้ต้องไปหาอ่านพื้นฐานการเขียนโปรแรกมทั่วไปเรื่อง array 2 มิติก่อนครับถึงจะเข้าใจ