这个例子昨天正好看了,话说那本书的例子都很不错~
C% U/ \, N+ z' a6 N( t& J不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。1 e" x4 ?8 C" V& P
is
5 B2 a- t* l1 G i,no,m:integer; --定义整型
# u: k4 Y" x, v8 \4 _ Buf:object; --定义object
, {3 ?; i( `- m; W# ido4 p3 F d/ B4 i2 Z! s8 M
m:=0;
$ {5 E/ w+ I( t1 S no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外): c( b7 u( u' Y2 K$ p
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行 `9 k; N4 H j% O1 I% q
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
1 M0 v/ V! u: b5 v @._From:=PartsTable[5,i];
B0 T+ a, Z5 _+ ]/ h7 I, C( M9 _ @._To:=PartsTable[6,i];0 F! J7 r- E3 `( r( {/ ~+ Q
if no=PartsNo+PartsTable[2,i] then 8 X& \! y/ v. _9 W6 P
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
3 ?( W) O* ~0 F' h1 g! ~! n2 O' n7 n- ~( V! w5 B# `" m
end;
& w) j5 y0 b2 c U* M, v: I i:=PartsTable.YDim+1;
: m% A8 w0 ?+ N$ v2 C end;
+ J) K. e$ \0 U/ \5 B m:=m+PartsTable[2,i];
. B8 H8 t7 r3 ?. {/ O8 n- o5 Q next;9 v/ J0 E9 W: k7 X+ I K
1 G# l0 r% v6 r+ e" Z [
Buf:=str_to_obj(sprint("BF",@._From));/ ~8 N8 `. c! u3 d5 V2 X
@.move(Buf);0 W! z- `# H6 x, C
end; |