这个例子昨天正好看了,话说那本书的例子都很不错~$ w1 ?2 z$ ~3 K" m
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
2 y' e" X6 ~$ L& \ H7 t$ dis/ Z# X; g2 g/ m! |
i,no,m:integer; --定义整型: \3 ]# U M I( F8 T' P( R" L; ^
Buf:object; --定义object
# ~( p. K( H6 q( Vdo
* |# C3 S1 [, M$ j m:=0;
( O" m# d/ g- O; Y( _& ` no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)0 h1 @% r" N, G
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行& P/ G: D6 b z# ] o2 l
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then , k4 Q) _4 V1 n2 Z6 K1 ]! V: i
@._From:=PartsTable[5,i];
2 F1 P+ d5 S( { @._To:=PartsTable[6,i];9 L% d5 \; ~' t0 a/ }: e
if no=PartsNo+PartsTable[2,i] then & n/ M3 a; P# |6 r& ?8 N
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
, ]/ C% _- q8 ?2 [ A7 C9 l1 E* v5 b% @/ y; t$ m# g* S$ m
end;' K! |6 `; I: C! }
i:=PartsTable.YDim+1;, j6 ~2 w" A) v* M+ z6 u9 [
end;% Q$ _/ M" g C! g$ c0 q. U
m:=m+PartsTable[2,i];6 R0 u- A) l( G* S: g$ ~
next;
' z5 h6 g& s2 q - ^3 [+ n8 B' f3 t, ~
Buf:=str_to_obj(sprint("BF",@._From));
% L6 d5 y' S7 D# D4 k: u @.move(Buf);0 |. j( ?. G, c9 h
end; |