这个例子昨天正好看了,话说那本书的例子都很不错~
9 h% g: P. u* [/ J. s不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。1 A# z, \( A% ~
is
. v, L9 t# |0 b: T: s1 G7 b. i i,no,m:integer; --定义整型
t, V; S$ K( J3 m) D, n Buf:object; --定义object1 N! O. v9 Q9 f2 f1 k
do" ~" h6 a, z% V$ `6 }
m:=0;
, `9 g% Z$ ?- M0 ^4 K, X! I* C2 c no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
/ I6 t2 X/ F0 h k3 ]+ r; e for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行3 {9 i1 Z2 a3 X3 m
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
# |+ q. x/ u$ [/ O @._From:=PartsTable[5,i]; / f1 t/ r7 P) p1 g* N4 o
@._To:=PartsTable[6,i];
8 R. G+ l* [/ F& d% ] if no=PartsNo+PartsTable[2,i] then 3 V( ^6 P. \5 Y% l& N/ Q# A) } k
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)6 a8 }! B) `- S# L! o' s# `
, l3 h5 ]: t1 u1 n# ^( s. W
end;
, U0 b$ W4 w' D& U i:=PartsTable.YDim+1;- p( g2 C: U6 C! h" }
end;
, h" i* n( ]6 i+ {1 B m:=m+PartsTable[2,i];2 l* W( V2 F/ }+ U& |
next;
6 B$ O s, p9 F l) ? $ T2 x0 R5 c3 R/ m1 \3 J+ J
Buf:=str_to_obj(sprint("BF",@._From));
+ e* x ?' r2 f% ` @.move(Buf);
) e3 a6 W& c: J- L, V) t6 h0 bend; |