这个例子昨天正好看了,话说那本书的例子都很不错~. R# B1 h& i$ P) i/ ^& _$ Z4 }
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
; @- P1 c4 V4 v1 v2 C6 u: C4 ois
% Q! {9 U* l9 v; T! G% o i,no,m:integer; --定义整型
: @4 c5 `0 d- L2 f1 ?( a$ {2 m) y Buf:object; --定义object
, Q$ {. a) E4 g$ ^/ vdo+ ^, n; D. c8 [2 f: ]) ]
m:=0;) s8 I* D- `- |" i9 ` C
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)$ g1 A- i6 W% I# M7 J
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行. B, L1 V# Y, O1 S( b
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ; h3 d8 j, Y- w/ M& i6 h0 H
@._From:=PartsTable[5,i];
$ m j4 z, \$ }- ^8 l/ X; O: Q @._To:=PartsTable[6,i];
& M8 q( i) S& Y+ \ if no=PartsNo+PartsTable[2,i] then / ^" ~. u7 d5 T* p" z) ]6 c" e
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
1 q r8 @! G6 n
. |# n: ^ M$ ]$ @ J6 U! R end;
, }5 {3 i+ C' |# Q- d% F- w7 {1 ? i:=PartsTable.YDim+1;. Q& e6 U8 T* P/ m5 t
end;$ X, a. I h4 J4 l& F" F. r6 u9 {
m:=m+PartsTable[2,i];6 W( O$ v; r: w- [
next;* ~$ _6 _5 N* l
' z) f7 L7 i& Z' H; H0 o) e- N
Buf:=str_to_obj(sprint("BF",@._From));, i! g, S9 ~' C$ x9 _/ S6 @
@.move(Buf);, E# i& ~& e8 h7 _/ t" X
end; |