这个例子昨天正好看了,话说那本书的例子都很不错~
/ ` R0 Q9 B) v/ k2 q# C不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。& {" t) v0 S5 `
is9 f' ~- ]# X8 K# N
i,no,m:integer; --定义整型
) Z4 n6 c5 ^2 r9 Y' s' i' F Buf:object; --定义object( ]# d, A9 {; p {! }
do
: s6 A# V6 A2 I- e1 w% N0 `4 a m:=0;
+ u9 Z# z4 O5 x) o no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)! r6 L" O- f4 f5 M
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行, X* N3 [ M, O2 |
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
+ x4 y5 x) `/ d3 R7 M @._From:=PartsTable[5,i]; % X$ K |7 |" l5 T
@._To:=PartsTable[6,i];. t( Y2 H/ |+ ^; x* t% M3 f
if no=PartsNo+PartsTable[2,i] then ! E# y8 V. d' n0 w7 O
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)1 ~+ w" N- L. ?( p
6 g1 w6 z# i4 H& J0 Y) G9 t end;9 d x: T$ E/ d2 [
i:=PartsTable.YDim+1;6 j8 U5 Y; G7 S4 _5 c
end;
( e1 x6 i# @- W9 n- X6 w m:=m+PartsTable[2,i];
3 a Q9 q. h A5 Y, }- X2 n2 C# } next;
7 `4 D# |. R/ W7 i! @4 m 5 ]4 H0 Z2 m7 O2 m* F$ `9 o
Buf:=str_to_obj(sprint("BF",@._From));
# ~0 J1 Q, p4 W) f- V/ C7 T) s @.move(Buf);% j; ~, z4 R1 @
end; |