这个例子昨天正好看了,话说那本书的例子都很不错~
5 z: ^2 S, i- y1 t P* o不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。3 j3 d0 n. k5 R1 V
is
6 N9 X3 X c' H& l i,no,m:integer; --定义整型
% G7 {: k- r) e+ ]3 I+ j/ g k Buf:object; --定义object
7 |2 C9 y% g9 w; ldo7 n2 [9 }: `3 w4 L: S- q
m:=0;4 R3 f" \7 G& M1 `2 O# z
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
4 G' O. W, W( i# c9 i+ N! P for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
x# g" @; T4 J0 B" [7 [% k* ~ if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ' u8 h+ N4 y% }# k% r2 Z2 x* p
@._From:=PartsTable[5,i]; 1 P9 `: F6 d! Z4 p- u% C4 k
@._To:=PartsTable[6,i];
. D }! r& j* E) T; g+ M) |5 Z if no=PartsNo+PartsTable[2,i] then ' V' X; c& k$ }, S" }6 O
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
8 ?8 j$ L6 m% }% A% N$ n0 o
! y) X F; T1 a8 u' _ end;
! C% [6 W( h: I# c2 h4 y" P i:=PartsTable.YDim+1;
: _, _! L7 v, m; ?9 i9 V end;
7 a$ D; I6 A5 x4 \7 y" D m:=m+PartsTable[2,i];: A6 [3 T, A2 s& q
next;/ g, g% E$ R0 I5 m* O) r3 X/ k d
) X. V# L6 C# u. V& o. ^5 Y! I! A Buf:=str_to_obj(sprint("BF",@._From));/ [# g6 P6 u! \5 M
@.move(Buf);
- j+ K3 r" k" Pend; |