这个例子昨天正好看了,话说那本书的例子都很不错~
( j+ m* F) A1 ~, U6 ]; V不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
8 v% _- ?! L6 a9 U, k2 i4 Xis
) f' ^8 c" L' {7 d! W i,no,m:integer; --定义整型
# I9 Z( ~4 k+ E$ z8 k. j Buf:object; --定义object6 k5 k* g9 F0 P, ], H z
do
1 p/ `# b2 j5 S" ~% t- n m:=0;
. N& V% A- D% Z" j& x no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)) n1 a7 ?+ R; H7 B# s2 [
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
. |, w& s3 b9 X# ]# v, V if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 2 `" ?6 h; x1 p! k$ V8 u, F# F* F
@._From:=PartsTable[5,i];
; K& p: N4 U K: z5 r @._To:=PartsTable[6,i];- K5 {* W3 h' }# x6 g F: V
if no=PartsNo+PartsTable[2,i] then
, u9 l b( r0 B2 E/ } PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
& @' `( E. T& M+ F/ z9 |5 B+ b; `1 P% ^
end;
4 o6 O2 G9 G6 H+ u2 o4 k i:=PartsTable.YDim+1;- Z% Z0 W7 t0 ^3 r' K( E; k
end;+ U7 b6 T$ D/ z. y- }" N& H
m:=m+PartsTable[2,i];
/ Z6 L( j% o) _- o4 k; v next;1 C6 [6 N+ o+ {! T# B
* w% U7 U: l) G6 `- R
Buf:=str_to_obj(sprint("BF",@._From));
, w% |8 q: H5 F, c @.move(Buf);# _- |6 F$ {4 D, ~) x6 M7 W. Y
end; |