这个例子昨天正好看了,话说那本书的例子都很不错~
# {1 o( j a8 }$ M5 e: Z1 i+ P不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
$ |. q" n, D3 w. p0 zis
0 G# U& f6 J) O0 n3 | i,no,m:integer; --定义整型. J6 J+ f" i$ R7 r' O! D* p
Buf:object; --定义object$ S; C0 l: p0 q3 m4 }' U
do1 C0 _7 y: }8 j1 `' n) I
m:=0;. @$ Z/ J! K" x( }8 C. a% e
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)5 q) e, S5 f4 m" y% H: D) d0 z
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
* v) b& c4 N! ]' D4 S! `8 Z9 }* m if PartsNo=m and no<=PartsNo+PartsTable[2,i] then , f- d) m: { y: ?5 G0 h# z% Q
@._From:=PartsTable[5,i]; & Z) g: s! W& Y, _; S
@._To:=PartsTable[6,i];
, G: m3 i! K3 B. h if no=PartsNo+PartsTable[2,i] then
4 g/ m) N% F; l# O PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)1 V* b8 ?* J/ {# E- N+ \
. [6 u% r0 \. T! e( ` end;* t! Y* }& T+ u3 H& W. X& b V
i:=PartsTable.YDim+1;
4 }" u4 I7 l' Y( s0 I( X end;6 o. V a0 A3 o! a& U
m:=m+PartsTable[2,i];
4 G5 W$ S" P4 X4 O2 Q I3 n next;2 ] ~" g. {, F$ \8 v# U1 t
+ J f. E- {5 l" E7 {2 C b& ~ Buf:=str_to_obj(sprint("BF",@._From));1 C& D! ]" q7 `; X8 w8 E" i
@.move(Buf);
0 J- K: p! W( W1 Q* ]& mend; |