这个例子昨天正好看了,话说那本书的例子都很不错~
0 r. x5 c7 z+ o6 B. q不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
! G+ b& j, Q; g1 Zis+ _& j" i6 R9 Z( ~
i,no,m:integer; --定义整型
; B% t+ o9 L. ~0 r+ D$ U' X1 r# m# r Buf:object; --定义object
U5 g' P: \: W9 u" Ldo5 U& `; _# l) e1 d1 ?4 M
m:=0;1 N3 e! j8 Y' ] ^
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
+ `5 d8 X( p% j- A& F3 `+ y for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
5 m$ W k6 M7 X8 e5 X if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 8 {4 Y* {, x/ P' `; g3 K
@._From:=PartsTable[5,i];
: m3 N% A1 c* u+ ~% B @._To:=PartsTable[6,i];5 |' j% D0 s! Q: @! x
if no=PartsNo+PartsTable[2,i] then
# `5 Q Q* p5 o PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)7 t0 R! ^6 W% j, M$ J
7 _* a6 M# A3 T Y6 e4 f% n5 n
end;7 m- {7 I: H6 ?+ ]( N) Q4 n4 I- E" c. d, M
i:=PartsTable.YDim+1;
# |0 ], M8 I v+ _0 q& `9 g/ V end;, n8 A& W' u3 X
m:=m+PartsTable[2,i];
: e0 B2 j: Q I9 d6 @ next;! r [. d* c( u7 `
5 `) l# ]' @5 s0 G7 c7 |; `/ u
Buf:=str_to_obj(sprint("BF",@._From));
/ z; M9 |, n/ R3 t3 E @.move(Buf);
& z# _. h. Y, N. ~9 zend; |