发布于 2011-08-03 01:43:50
24楼
不好意思,今天晚上回来才看到,匆匆写了一个两个任意db数量的,测试了一下,还成,用scl写的,非常简单,总共也没有几句。我是才用背影大侠的举例,连个都是100个real的数量,具体的你可以根据情况改一下。需要注意的是:由于是用real,所以步长是4(间接寻址的时候每次+4),100个变量就是0-396,如果是38个就是0到38*4-4=148。外层嵌套用for,是你需要写入的。内层用while家少循环数量。需要注意的是:内层和外层在有重复数据的时候是不能颠倒的。比如数据块分别为a\b\c,查询a中的变量,在b中存在的,写入c中。那么就要用a数据块做外层,如果a中有重复数据,而这个数据又在b中存在,c中会写入2条一样的。我用delphi随便写了2个随机数据表db21、db22,初始化了一个空的数据表db23,db21、db22数据表包含100个随机的0-100.00的real变量。想把这连个数据表贴出来,太长了,下面再给你查询数据的程序。
DATA_BLOCK DB21
TITLE = 运行
AUTHOR: Andy
FAMILY: plant1
NAME: db_mot1
VERSION: 01.01 // max. 15.15
STRUCT
tp: array[0..99] of real :=100(0.0);
END_STRUCT;
BEGIN
tp[0]:=31.74;
tp[1]:=2.81;
tp[2]:=45.29;
tp[3]:=5.98;
tp[4]:=87.92;
tp[5]:=78.82;
tp[6]:=79.4;
tp[7]:=55.78;
tp[8]:=80.40;
tp[9]:=12.0;
tp[10]:=37.72;
tp[11]:=69.50;
tp[12]:=90.3;
tp[13]:=58.27;
tp[14]:=41.86;
tp[15]:=33.8;
tp[16]:=69.29;
tp[17]:=46.14;
tp[18]:=10.71;
tp[19]:=76.59;
tp[20]:=85.50;
tp[21]:=16.82;
tp[22]:=98.45;
tp[23]:=14.50;
tp[24]:=70.0;
tp[25]:=71.52;
tp[26]:=46.34;
tp[27]:=94.73;
tp[28]:=55.29;
tp[29]:=14.50;
tp[30]:=18.96;
tp[31]:=40.98;
tp[32]:=21.31;
tp[33]:=94.37;
tp[34]:=45.38;
tp[35]:=87.82;
tp[36]:=42.52;
tp[37]:=53.24;
tp[38]:=77.30;
tp[39]:=40.91;
tp[40]:=26.21;
tp[41]:=62.88;
tp[42]:=19.30;
tp[43]:=4.21;
tp[44]:=58.54;
tp[45]:=74.96;
tp[46]:=74.1;
tp[47]:=34.13;
tp[48]:=49.88;
tp[49]:=60.20;
tp[50]:=92.28;
tp[51]:=80.72;
tp[52]:=74.88;
tp[53]:=57.54;
tp[54]:=14.38;
tp[55]:=30.90;
tp[56]:=22.72;
tp[57]:=12.39;
tp[58]:=7.20;
tp[59]:=48.62;
tp[60]:=31.29;
tp[61]:=22.77;
tp[62]:=20.40;
tp[63]:=26.1;
tp[64]:=39.34;
tp[65]:=81.52;
tp[66]:=17.65;
tp[67]:=22.61;
tp[68]:=26.72;
tp[69]:=25.44;
tp[70]:=27.75;
tp[71]:=7.60;
tp[72]:=58.52;
tp[73]:=70.57;
tp[74]:=88.91;
tp[75]:=8.89;
tp[76]:=28.32;
tp[77]:=64.27;
tp[78]:=87.83;
tp[79]:=50.37;
tp[80]:=2.28;
tp[81]:=21.49;
tp[82]:=6.97;
tp[83]:=2.7;
tp[84]:=64.43;
tp[85]:=74.92;
tp[86]:=64.72;
tp[87]:=19.39;
tp[88]:=58.80;
tp[89]:=14.19;
tp[90]:=65.54;
tp[91]:=87.23;
tp[92]:=30.62;
tp[93]:=32.4;
tp[94]:=36.22;
tp[95]:=67.22;
tp[96]:=75.51;
tp[97]:=68.53;
tp[98]:=76.1;
tp[99]:=38.89;
END_DATA_BLOCK
DATA_BLOCK DB22
TITLE = 最高
AUTHOR: Andy
FAMILY: plant1
NAME: db_mot1
VERSION: 01.01 // max. 15.15
STRUCT
tp: array[0..99] of real :=100(0.0);
END_STRUCT;
BEGIN
tp[0]:=66.130;
tp[1]:=59.87;
tp[2]:=1.76;
tp[3]:=26.42;
tp[4]:=39.42;
tp[5]:=42.64;
tp[6]:=92.19;
tp[7]:=79.76;
tp[8]:=38.73;
tp[9]:=68.30;
tp[10]:=39.12;
tp[11]:=74.53;
tp[12]:=66.59;
tp[13]:=7.60;
tp[14]:=62.29;
tp[15]:=53.10;
tp[16]:=8.44;
tp[17]:=92.98;
tp[18]:=90.46;
tp[19]:=2.21;
tp[20]:=94.95;
tp[21]:=86.36;
tp[22]:=39.61;
tp[23]:=90.27;
tp[24]:=56.45;
tp[25]:=57.40;
tp[26]:=73.0;
tp[27]:=57.27;
tp[28]:=45.23;
tp[29]:=2.49;
tp[30]:=52.41;
tp[31]:=10.10;
tp[32]:=51.17;
tp[33]:=91.11;
tp[34]:=56.47;
tp[35]:=69.62;
tp[36]:=86.25;
tp[37]:=55.90;
tp[38]:=91.94;
tp[39]:=43.19;
tp[40]:=63.16;
tp[41]:=92.22;
tp[42]:=79.16;
tp[43]:=20.71;
tp[44]:=45.0;
tp[45]:=9.27;
tp[46]:=26.46;
tp[47]:=10.40;
tp[48]:=83.4;
tp[49]:=98.81;
tp[50]:=71.75;
tp[51]:=7.93;
tp[52]:=32.50;
tp[53]:=45.44;
tp[54]:=22.11;
tp[55]:=83.29;
tp[56]:=44.46;
tp[57]:=58.39;
tp[58]:=66.35;
tp[59]:=19.9;
tp[60]:=55.75;
tp[61]:=41.92;
tp[62]:=64.86;
tp[63]:=58.51;
tp[64]:=37.2;
tp[65]:=93.31;
tp[66]:=27.32;
tp[67]:=0.79;
tp[68]:=43.70;
tp[69]:=35.29;
tp[70]:=71.52;
tp[71]:=20.28;
tp[72]:=30.21;
tp[73]:=73.21;
tp[74]:=59.32;
tp[75]:=19.97;
tp[76]:=60.12;
tp[77]:=93.60;
tp[78]:=18.57;
tp[79]:=14.79;
tp[80]:=88.36;
tp[81]:=82.45;
tp[82]:=36.18;
tp[83]:=41.24;
tp[84]:=28.59;
tp[85]:=84.88;
tp[86]:=51.17;
tp[87]:=14.71;
tp[88]:=94.54;
tp[89]:=88.57;
tp[90]:=9.85;
tp[91]:=92.37;
tp[92]:=41.45;
tp[93]:=43.55;
tp[94]:=9.5;
tp[95]:=93.53;
tp[96]:=62.56;
tp[97]:=10.72;
tp[98]:=32.36;
tp[99]:=32.70;
END_DATA_BLOCK
DATA_BLOCK DB23
TITLE = 目标表
AUTHOR: Andy
FAMILY: plant1
NAME: db_mot1
VERSION: 01.01
STRUCT
tp: array[0..99] of real ;
END_STRUCT;
BEGIN
END_DATA_BLOCK
就像找找偷懒的诀窍