这个例子昨天正好看了,话说那本书的例子都很不错~9 D6 n }7 _8 z3 r' A3 E( ]" ~3 o/ A
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。" i( k, F4 d, z) G P
is' u9 B: y- d7 w3 r
i,no,m:integer; --定义整型
5 A! h% t. i- F0 V4 o6 ? Buf:object; --定义object5 v; f, Q" x! U3 i" [. a6 M
do
& j9 l8 L: Y% e7 a, E m:=0;$ {6 Z) x- d1 f0 B, b
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)$ c4 \6 \+ J! F9 k. \
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行4 _, Q& f# D0 [7 t4 `+ ]: h
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
6 o$ }2 f( j; r* G @._From:=PartsTable[5,i];
. d$ x( j; `% B$ [& Q' |2 v @._To:=PartsTable[6,i];
! T! U" [2 V2 K9 W$ H5 M$ v if no=PartsNo+PartsTable[2,i] then
6 K. `7 h6 j/ s: I1 ^3 ]4 S- ^ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
) p$ P( `- W" y: G2 X: V2 b" o! s: ?- y$ F/ k
end;& m, p0 c$ R$ \
i:=PartsTable.YDim+1;2 s, R( W, @ t! ^4 q
end;
: a! O' ?# {# G6 M8 [ m:=m+PartsTable[2,i];) `! x* g3 c2 q$ t( a ]
next;
9 m, ]/ k- K }4 B6 |, G! H1 E4 j. R
' F2 N: z$ T' g2 S Buf:=str_to_obj(sprint("BF",@._From));
T( b& L$ w/ ?" [4 y @.move(Buf); e$ k' p* a) x) D9 n2 y
end; |