这个例子昨天正好看了,话说那本书的例子都很不错~
* k1 E' ]( e9 T" U( w' ]& H% O不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。 \- m6 z4 a! E& {
is
* t" V6 x9 X- }4 C6 g: \ i,no,m:integer; --定义整型
1 I& `7 T4 `$ z$ v0 p Buf:object; --定义object
' j T U/ J. n) l+ N: U1 Udo7 M; r) A" M# t( q
m:=0;, o% }- m) X/ d3 r7 g
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
* l2 a7 `- P- x; r4 H9 k# f for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行8 V! i, `0 u) B O# o) _' a ~
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then " y" c* }" E) d7 I) a
@._From:=PartsTable[5,i];
$ d9 u# D: w6 l/ o$ { @._To:=PartsTable[6,i];
; ]3 C' f/ o: ]( j9 v; d8 R5 n if no=PartsNo+PartsTable[2,i] then
6 R; q1 h) Y3 h& q2 @0 H1 x PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去); Z! U H7 V/ t' u9 o7 |
7 q, g2 C" I# x& {" B end;
- r5 V4 B) I6 C c( K" h i:=PartsTable.YDim+1;
]4 g. a$ y! l end;* b0 z% o/ h) F K* {9 P! _
m:=m+PartsTable[2,i];5 i4 ^8 j# [* E: [6 {
next;
* V8 |3 c6 S, ?( D7 k% I 2 [0 D& Y7 i7 Z5 c+ [
Buf:=str_to_obj(sprint("BF",@._From));
4 ]/ d' ~7 ~4 G @.move(Buf);
' b1 |7 e/ U. i- b( x( q( dend; |