这个例子昨天正好看了,话说那本书的例子都很不错~
& p! w& f& c+ v/ ?% Q D不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
/ P. P/ a, @, j1 mis. e! U$ v; ]4 G8 T2 X7 ?8 B
i,no,m:integer; --定义整型
/ n% ^! f- W" B) s* b Buf:object; --定义object/ C6 Z( }3 a# F/ \
do; f9 `5 B5 P9 `1 e2 h
m:=0;
( F6 B2 a3 u0 I5 ^* K o4 K no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)6 y9 g5 X/ o/ u3 x7 r: n; w
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
+ w# M3 Z+ z" y8 I if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
% w& [3 T1 G9 r& [1 w @._From:=PartsTable[5,i];
3 O5 O+ a7 N, t/ P @._To:=PartsTable[6,i];; J9 R6 _% m) q* {( p: V" P
if no=PartsNo+PartsTable[2,i] then 0 Y/ v5 G+ j6 P
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去): t% [# w/ {! T+ _
" Q& e$ c2 Z! `2 L# O end;% c9 W' s. j: L! m
i:=PartsTable.YDim+1;
: Z9 n& ]6 o# I4 U1 l& P end;
0 ]" ~. Z, S* J$ }9 i) C m:=m+PartsTable[2,i];
/ s t$ X# b, z$ ^! h# q next;5 Y# a$ Z) F5 S3 Y4 p" `! K, F [
2 P/ m$ F/ a" d5 d$ d% P( i Buf:=str_to_obj(sprint("BF",@._From));0 N" L8 |9 k8 N5 {0 c! r% z
@.move(Buf);$ f+ z% I t0 c- S
end; |