这个例子昨天正好看了,话说那本书的例子都很不错~
( }5 N. B( _2 L) J4 ~0 J" z: o! ?不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
+ L9 k& Y! T! ris! o2 E& l/ a/ y. B
i,no,m:integer; --定义整型
% \8 Y. L% N' F% _1 N Buf:object; --定义object! t5 G. S3 L' S# l6 _# o
do. @$ ^) p k; N: _/ m- S8 } {) p; n
m:=0;
0 L! @6 q# c* r% z, G8 n- _ no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
- _- L# T6 Z# K# Y5 v( k' j for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行+ K8 L: [+ G, x" Y" K
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then " \7 }' N* y, o& z0 L
@._From:=PartsTable[5,i];
5 Z* U; O/ s$ e @._To:=PartsTable[6,i];
3 C2 Y4 y- C( Q7 l' t |( D if no=PartsNo+PartsTable[2,i] then
/ F! m. c. a; r% l r. E8 l6 v PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
6 i9 V' X9 u8 l3 I! H& a, T
4 S: H1 _9 y. @1 ^+ F3 l# ]5 V end;5 h9 e* I$ _/ M" A$ @
i:=PartsTable.YDim+1;, o, j6 ]2 C, m
end;1 {) ~% O3 h! p! q$ c
m:=m+PartsTable[2,i];' f" [( F: u& }' ?3 U5 t5 q
next;; S2 a& L) o D/ H
5 l3 Z6 D2 R) d; C Buf:=str_to_obj(sprint("BF",@._From));
0 V: I+ j" n' E+ k @.move(Buf);
1 c& O8 @0 K4 V, T5 l2 p5 gend; |