这个例子昨天正好看了,话说那本书的例子都很不错~
8 L" [, }4 r8 b8 _' X不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。8 N! l2 u X) ^% Z0 F" I
is
0 j" S v- Y, h$ |) V i,no,m:integer; --定义整型, [7 D& z1 {. ?; h) ^, B/ V/ Y3 ?6 L
Buf:object; --定义object4 P( | H, l b# p r8 |
do
2 w! f0 F- {4 H m:=0;+ u( r8 S5 w6 f6 c- A8 E: K
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
! `7 W3 p' _! w+ I% b, Y for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
7 x% |5 h: S( S+ h1 ?; I2 ~ if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ) T' }4 U4 t5 i
@._From:=PartsTable[5,i]; 4 X$ n3 l7 E7 V
@._To:=PartsTable[6,i];+ H4 r, u: [4 H; Z7 T* l- A5 h
if no=PartsNo+PartsTable[2,i] then $ A& }) l! Y! t; i6 s- M8 `
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
. ]2 b8 E! c9 | e, L. b, k/ z# P1 g% @
end;
* v w2 p: ^& k8 [! z7 i0 x7 j/ v i:=PartsTable.YDim+1;
7 G/ l5 a/ I6 w6 h9 N. c; o$ y# J end;. I1 X; L. T& z$ j/ S2 ^
m:=m+PartsTable[2,i]; J' v" C4 v) b) q2 ]
next;
6 w- t% I9 v6 B
" j' v* x8 B7 ?' p$ q- G a* } Buf:=str_to_obj(sprint("BF",@._From));
( }5 |5 o1 T4 d( w, k1 d& z6 ] @.move(Buf);
# P5 x) v, D5 [, I o: X0 dend; |