这个例子昨天正好看了,话说那本书的例子都很不错~. r7 {' A- i/ y
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
; D) l* T4 M" n+ t- D2 \) s% jis
/ T5 C1 V+ m5 x2 w7 @9 P i,no,m:integer; --定义整型' J) Z) {4 }0 J' O$ Z$ [
Buf:object; --定义object
1 N- z* A& @; x4 odo& L* a* _0 i. _$ |! U% H7 F: C
m:=0;- |; W% F5 S- h
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
3 H6 I+ h# }$ I6 p7 T% I Y for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行6 v9 f9 W0 a G3 z8 B1 ^* k* I
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then * t5 b& Y8 u1 r, ?# j
@._From:=PartsTable[5,i];
) \. c. b( e( s+ T# _1 x @._To:=PartsTable[6,i];
/ I: N# w4 q7 M2 S- W& a2 ` if no=PartsNo+PartsTable[2,i] then " w8 {4 m q) |/ |* T$ E
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
# R" H/ u8 r* i9 U! p9 F7 \+ A& T; K& L3 i' g3 F A- ?
end;7 r, r, J2 z; o. s/ F# ?; F/ y& b
i:=PartsTable.YDim+1; p, E3 K9 p, w) W( w
end;! E( Q' A, f/ O! ^
m:=m+PartsTable[2,i];
& X4 G, E# T, V! s3 {* p/ g next;
# ] x, y5 j) Z8 S2 o
9 [: |6 \; o- |5 x! y; t, T; ~3 O Buf:=str_to_obj(sprint("BF",@._From));( o9 I3 ?# K; z
@.move(Buf);
2 }' g" j F3 F: r* q. mend; |