这个例子昨天正好看了,话说那本书的例子都很不错~: b" w/ I$ {* N* x( p* B
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。1 K: v4 z# @# Z; c7 V' d' h
is1 F9 [: z% s% f* j9 m- o: W
i,no,m:integer; --定义整型
* w B) g; ]! s3 \- Y Buf:object; --定义object1 `! J$ K0 Y- V+ }9 A8 W# M
do% a# \& B; m; Q' T) V
m:=0;
/ W; ]* W7 `4 u& @9 B. I no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)' R4 G2 }9 M- ^7 t# ^
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行; e5 N2 E, t0 i# _
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
& A0 F' l, `5 _' d9 @# _ @._From:=PartsTable[5,i];
1 n7 @' A7 W( X# y) ?* s @._To:=PartsTable[6,i];
* r/ X" H9 S; J; Y3 C+ C1 h" K2 @ if no=PartsNo+PartsTable[2,i] then
) p8 w& U+ b2 I5 ? PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去); k( p* c- i( C( B
, A" O/ |& l6 x9 K: s% R# D) k
end;# y5 _$ Z1 m, x5 {7 N
i:=PartsTable.YDim+1;
! Y) Z) L7 A9 J! L' T3 l- V! Y end; A* }. t% t8 G3 ^
m:=m+PartsTable[2,i];' t3 a/ M y" v0 E- j
next;9 ]7 f/ b9 J6 W, F7 Q5 k4 |
3 {* s/ t# K1 ~7 P, \1 j" k Buf:=str_to_obj(sprint("BF",@._From));
. \: j0 w- e* e3 C @.move(Buf);) t) h) [7 Q& l# u
end; |