这个例子昨天正好看了,话说那本书的例子都很不错~
# z: s# `5 e2 _7 _; ]不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。5 B) w) u& Z1 U
is
( x& p$ j5 ?% n/ I0 U* B' d i,no,m:integer; --定义整型+ q. \- C. x: b# X. q5 {' K
Buf:object; --定义object! W' u7 A. P- [" Z* u5 S. g
do- p' K: K0 {; F! c+ N+ C' k$ y, ~
m:=0;
8 H: I! w. ]* I5 g# {4 ?9 n: u* j no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)7 s& a9 a8 A; q# s. v$ L2 U: q" D
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行6 M5 [* b# i9 V3 x* g6 Q b0 \
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 0 w% A1 Z8 o! D6 Z% f, N8 f) k) j1 U
@._From:=PartsTable[5,i]; 0 p% | f3 H& x$ C8 z% |
@._To:=PartsTable[6,i];2 f' p$ G; y0 `- d
if no=PartsNo+PartsTable[2,i] then 1 u0 P3 n5 e9 p8 ~' F+ T
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
: j6 h o5 q: a. @9 M; J1 X, R7 B1 v% W @6 S# A
end;
3 I2 e( L3 H* p1 R# k i:=PartsTable.YDim+1;
, b9 A# t1 L' K3 y+ r end;
+ w) k$ G5 c$ S m:=m+PartsTable[2,i];* T% d% u! V( ]) ]- r5 J; X
next;
* u, y) r1 `7 n# K, }( w
+ H) x6 R% W$ }$ N, p Buf:=str_to_obj(sprint("BF",@._From));' \, l4 V# {1 G1 y) _
@.move(Buf);
. P! T4 H; J" L6 B( Oend; |