这个例子昨天正好看了,话说那本书的例子都很不错~7 n6 d& W5 O3 ^
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
/ m g" e/ a$ n n- P2 W3 T% His- {: M3 z; R3 a, ^% W# l+ u
i,no,m:integer; --定义整型5 ~* q; m+ O; B# o
Buf:object; --定义object: N# X& ?7 z9 ~6 n. f6 n: n. {3 d' R
do8 o4 F6 H+ E; A- _4 R9 E" l
m:=0;2 H! V: w2 u) y, W( @, O' p2 A2 X* X
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)3 H& k; }6 p, U$ o {
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行! L/ V; W* G# u7 ^+ b
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
- F, E: a( u6 B* X' { @._From:=PartsTable[5,i];
/ E4 V( {( ~2 V' a' P @._To:=PartsTable[6,i];3 h( y: D H8 h4 x8 k9 X$ {7 a
if no=PartsNo+PartsTable[2,i] then
% j8 o3 v" t, r1 I# U PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
2 ]; |) i. L% B7 l- t( V3 D+ Z) M* o* u T
end;
/ ?/ M5 s |- m3 Q9 d i:=PartsTable.YDim+1;
9 S+ C" Q' q( `. N6 w9 w end;
, m7 m* D# I8 |. _ K G1 [ m:=m+PartsTable[2,i];
7 B4 r* _3 a3 A+ a1 I! K next;% L: D$ t1 X8 R- a- W& i% u# ]
! Y% ^' @: s+ h! W4 `$ }) ]- e
Buf:=str_to_obj(sprint("BF",@._From));
0 }( p" m; x, j' c @.move(Buf);3 F; J6 ` {5 v8 N
end; |