这个例子昨天正好看了,话说那本书的例子都很不错~
0 F8 B* b3 M' \不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
0 g: m j' S; l: s" gis
{2 h2 ]1 a/ p$ X i,no,m:integer; --定义整型
. _4 h0 t2 z: ?, Z Buf:object; --定义object
* l9 G9 t, Y/ u+ e w. r6 q0 B! Rdo$ b% E2 t/ _+ }' o* l
m:=0;
2 ?- S" n& p: i" n8 ^ no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
7 h, A$ x5 I; V for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
" {$ W% \$ V0 j7 D9 G+ b if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
; L3 o5 B6 L. {* L; d @._From:=PartsTable[5,i]; 3 K. s+ J8 z/ @. l5 E" s
@._To:=PartsTable[6,i];
4 f$ }: D9 f& y* [ if no=PartsNo+PartsTable[2,i] then $ N/ x; F5 j8 K% I' t5 Q
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去): j1 j& ?8 Z/ k2 W0 |' ]
- V3 V' L- e* o end;
, D: M) O d5 a& u( i& Y9 @1 X i:=PartsTable.YDim+1;4 ]6 o3 B- L+ m$ f8 m5 i6 D, s; Q5 d
end;
% M2 z* {2 k" G m:=m+PartsTable[2,i];
; g0 m2 I7 }7 P% r7 b4 U next;
- U- f' u' O) ]* `. k
# ]/ l! N* h7 j Buf:=str_to_obj(sprint("BF",@._From));
2 h1 x! Z/ Q$ Y0 ?6 Y2 B @.move(Buf);
/ n {+ T6 S# H# pend; |