这个例子昨天正好看了,话说那本书的例子都很不错~* n. k' Q) T! }) Z8 f1 d. a
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。5 z: b: ^6 i% p3 ^; E# H, G
is( R% N0 ~, k6 y6 K; i* t
i,no,m:integer; --定义整型! F6 E. Z" |# C8 u; v4 {; N; _! W
Buf:object; --定义object2 \( ^8 B3 N0 W0 C' C R8 `
do+ z: y+ t0 X) f" t3 Y; b: {! |
m:=0;
& E& C7 g, ^& O) I# k no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
; C7 G, R" H, ~3 I1 } for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行; ?8 s( [5 g4 j* p' j- H
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
5 _) |- }, [) u# m: @. | @._From:=PartsTable[5,i];
7 z7 E" D, j1 g+ q& }" L @._To:=PartsTable[6,i];6 b$ [7 y9 U! N6 _
if no=PartsNo+PartsTable[2,i] then 5 }% `! a. t3 p7 s5 c5 @# i8 i
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)! q! k0 z4 N- l' b4 \) O! j
; T C7 ` i. w* G
end;
( Q/ }" W+ V3 g8 p- l/ q i:=PartsTable.YDim+1;
( _ t/ V8 p, Q' Y, ] end; y$ O8 V9 z* e/ I! n3 q+ P
m:=m+PartsTable[2,i];
/ B* s5 h6 j4 x, |6 D next;) T% A7 E% S N& {
" B/ }: G9 A. N8 E. \4 k Buf:=str_to_obj(sprint("BF",@._From));
% o9 P! F2 f$ G3 r @.move(Buf);
$ y2 [' P" f e( j* r; q# [- I0 z/ Q( vend; |