这个例子昨天正好看了,话说那本书的例子都很不错~
: ^1 j$ I( L P% y% Z' ^不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
# O3 f1 }4 e/ Q2 N. O- eis# ]' I$ l- \, u. L8 c2 I& F8 f
i,no,m:integer; --定义整型
& s4 s9 y& z$ C( i7 N Buf:object; --定义object1 P: r! C2 n7 q4 S
do
9 W- S( V( n$ i' K7 z: h& F m:=0;
9 z: g- {2 M. ? no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)5 p2 Q, ]1 h# v. @5 k8 D8 H/ \( X
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
$ o% c9 R7 Q; j' Q; g8 H9 J if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
/ u5 R/ }( h' v! Z7 I* a @._From:=PartsTable[5,i]; + Z1 j( W7 m2 e# ]( l1 y
@._To:=PartsTable[6,i];
0 m3 _* ?4 q! F if no=PartsNo+PartsTable[2,i] then 7 G& X2 L. e* x9 g; b7 W
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)4 B" s; Y" u) Z5 Z! F2 z
+ P' w# c3 H' f3 d/ J
end;
( l, c2 P# ]! Z) C i:=PartsTable.YDim+1;
: ~ W7 X9 V6 G- U+ \9 w8 d end;
, ~, H/ a, T" N; r m:=m+PartsTable[2,i];4 T" w4 K2 J' J" h
next;
9 r% u) [+ o( P# X* H0 `0 `- H T! w
- ]3 ~1 {* s# o6 B. e: ^- { Buf:=str_to_obj(sprint("BF",@._From));4 D+ }; T- R+ L3 e. l* E
@.move(Buf);9 p' ]$ e: r4 c9 j1 B
end; |