这个例子昨天正好看了,话说那本书的例子都很不错~
/ W! U" V6 |( _$ R6 [* |+ a' K不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
) Z( G+ s, k# y$ J1 \" A. I7 _( ^is
; ]5 h4 ~# k3 D/ W i,no,m:integer; --定义整型- H* ]# L" ~+ R6 L
Buf:object; --定义object
( N* H; t. z! K9 Pdo2 O+ C- R1 d) n- \9 u
m:=0;
0 J) z4 Q6 ^, O: J9 r no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
[9 @) f3 C8 v' C9 v for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行5 v: H8 e8 b9 b, j
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
/ \; H+ Z6 V) i @._From:=PartsTable[5,i];
3 E: N9 e% h9 b! T: ~, l @._To:=PartsTable[6,i];5 L8 e5 V. X& G1 U; [. Y$ h6 P
if no=PartsNo+PartsTable[2,i] then
; x0 ?, T3 W$ b# d$ ?5 a0 P PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
( w1 _; V, X) a9 C' F9 B- k+ q7 C. _
2 B) l) g1 C3 b) U end;
, Q! R) x3 _8 _+ b p3 P9 s" v- L/ R i:=PartsTable.YDim+1;- w3 i6 d: L4 t
end;
. U+ ^& U' Y7 h m:=m+PartsTable[2,i];
5 Q) x- o' p' U- t8 q; H4 K next;. r3 \8 ~" M9 [- }# Y
7 S/ Q9 b7 X: x/ C9 D
Buf:=str_to_obj(sprint("BF",@._From));
7 i+ o# L, y t @.move(Buf); ~4 p2 k: [. r3 H! u3 N2 K
end; |