这个例子昨天正好看了,话说那本书的例子都很不错~# {8 y/ I; w# V7 Q7 D, D
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
- F! A9 ^1 P: S! A0 i% U! a0 His7 w- Z2 U# b: }% e2 d; o! I- `
i,no,m:integer; --定义整型- c, u3 L4 t; a9 O$ e
Buf:object; --定义object" `4 ^" c) ~. f `& [
do
$ W8 e3 ^* t: R& }, N m:=0; o$ H9 K/ J9 o' l0 Q
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
( \& _, t- c0 x" {5 s1 M7 { for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行( f7 i* ?# V" j+ _, h
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then , i- w# Y8 }0 l. p, B: G# c
@._From:=PartsTable[5,i]; 5 B0 w5 O4 @5 u+ l9 K% B$ a6 w- m
@._To:=PartsTable[6,i];
6 B" r: {! r+ j if no=PartsNo+PartsTable[2,i] then
# c; l, J- @0 K. s PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
! \% C, T" ~4 F: @, v/ w9 s
# k* z( x+ q b end;' \) z; @+ ^' `5 S% o4 y
i:=PartsTable.YDim+1;
- S0 n. y: e/ O- b8 ?! _ end;; S% j0 w+ M! \' [$ U
m:=m+PartsTable[2,i];5 ~* d5 C4 p+ p% Y; q7 ^
next;& ?9 T9 ~; P. S2 g6 H" o* d$ w
0 X3 N9 \9 Z$ f, u( @: n Buf:=str_to_obj(sprint("BF",@._From));
/ k3 c1 }: h$ ]- ^, n( e t9 @- c; x/ d) M @.move(Buf);
$ a: N# b0 X$ T+ Q( jend; |