这个例子昨天正好看了,话说那本书的例子都很不错~
$ i) y4 _6 |; j4 S不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
. o9 I( l7 W* U0 G7 i( Mis
! [. z5 e X- f2 _3 y i,no,m:integer; --定义整型
; x4 e/ a& h1 }, ]6 N Buf:object; --定义object2 ] ^$ B3 F. T# S2 I8 i
do
0 C( h5 G8 i# _ m:=0;, i* j/ `: G& L' N% b
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
9 G+ O3 K0 M2 e7 { for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
: x1 U; t9 \" [, l if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ' B/ G3 O# L( c) H( V6 [ b
@._From:=PartsTable[5,i]; & H. I4 {0 R" d: U
@._To:=PartsTable[6,i];
) Q. E8 N- T# R if no=PartsNo+PartsTable[2,i] then , Q% Y% v) {7 c, r
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)1 M' b% M( I( o! `" D% G7 A% }, T
7 R+ b0 T, d0 K end;
; z+ u8 Y, O, K1 @# K3 l f i:=PartsTable.YDim+1;
: C1 a2 K6 y2 k ?* Z+ S2 m* h end;
" y5 f. e' c |- m m:=m+PartsTable[2,i];
' v4 `4 M5 ^ R. d b/ g next;- `: u4 u$ O4 V' l/ v
) ]5 ^9 m8 `2 Y* ?
Buf:=str_to_obj(sprint("BF",@._From));
2 q4 ~% |6 T) H' u1 t @.move(Buf);
+ p9 m) i# d* k6 R. |end; |