这个例子昨天正好看了,话说那本书的例子都很不错~% p& h; G, r1 B7 A
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
1 o# t, f# Z9 W2 pis
3 N$ |3 t# o, |; J i,no,m:integer; --定义整型
1 }3 t6 M* U6 b% N; S2 n Buf:object; --定义object X1 _- m/ n" f8 C
do0 ~; D, s. N/ g9 y
m:=0;
* u9 A1 j% N9 p. y1 q* t1 f0 k no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
6 E( y! _. G% {6 {% { for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
* R* U0 V* j4 C/ N( y$ j if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 3 c8 Y/ ?+ H7 R p% V& a h
@._From:=PartsTable[5,i];
$ h# Q) L8 G# Q: u$ x4 k1 k& b @._To:=PartsTable[6,i];
' R& C, x- h- b1 t8 u. L if no=PartsNo+PartsTable[2,i] then 4 P/ z5 G/ z' x$ o) V# @' k7 Y
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
8 h6 i: c/ U% q; W8 K: ^" D' d" U9 S8 _
end;3 D) ~3 j& G/ q Q$ o
i:=PartsTable.YDim+1;% ~4 K2 P6 O4 N* s, ]
end;
+ W6 v9 }! z2 M& Z5 \5 H m:=m+PartsTable[2,i];
2 Z9 C! ^# V5 |2 {' K next;/ i( t& r$ T0 @1 N- L
; {6 p2 ` h9 ]
Buf:=str_to_obj(sprint("BF",@._From));
1 h' S3 a$ Y) x" O t @.move(Buf);
+ S& X. Q2 c( `/ j' xend; |