这个例子昨天正好看了,话说那本书的例子都很不错~
! @; _8 F9 J+ \不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
" f% a3 E( Z1 b+ b9 }& j4 uis9 R3 v" I& @/ y, v; B$ {; ^+ ~
i,no,m:integer; --定义整型
( ]+ c8 l$ _/ [9 o1 f$ Z6 b- ~7 S Buf:object; --定义object
Q) c5 ^3 A0 }/ O) E7 `0 wdo
. P2 F) d0 Z( D# `4 a( U m:=0;, G; P9 @5 ^' {8 Y. y
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)8 e, p) }1 _) T. j% m
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
2 ]. A) J& j; k2 B* `* o if PartsNo=m and no<=PartsNo+PartsTable[2,i] then / `1 L5 E# A' s/ f+ w% D9 v) b# \
@._From:=PartsTable[5,i];
. y" B ^- U$ X; O @._To:=PartsTable[6,i];
+ X2 K/ S1 u* M$ Y if no=PartsNo+PartsTable[2,i] then
& ^' Z$ d+ w" D# G' N PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)" n" v4 U: A5 _+ Z% j
8 o. ^3 c2 k: R3 N0 d
end;7 s* c) m" D) L2 H
i:=PartsTable.YDim+1;
0 z' r) g9 N+ A9 I6 U/ ~: n end; O* O8 l: S# p
m:=m+PartsTable[2,i];
$ w+ p! M) o+ z7 j) t next; h; S- n" X0 S" T, l; t
. c* e' l: ^% R& c1 c5 v
Buf:=str_to_obj(sprint("BF",@._From));, m9 `$ o# m/ \5 K
@.move(Buf);
2 c8 ]6 ?# [! `# dend; |