这个例子昨天正好看了,话说那本书的例子都很不错~) `. ^. q' T; g; X' t5 _0 v
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。& U+ T; L0 _" Q
is" S* N7 V0 w# N& V: a5 S9 U
i,no,m:integer; --定义整型) C8 x6 W# z8 O8 l, K9 t, ]
Buf:object; --定义object- |* E! }$ ]/ Y, Q) p2 `: r
do3 d* p X/ ?2 ?* _( P7 }# E1 k
m:=0;) L1 j& a" S8 k E; _: w7 _+ P
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)/ z$ J7 W! F. v0 w# y
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行$ l+ M+ b; Z# r) ^1 r) C
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 4 {7 J5 v6 q0 b
@._From:=PartsTable[5,i];
# j% Y, O7 q" m/ \# k/ i @._To:=PartsTable[6,i];
) p) p& H& t! | v% k# G5 ] if no=PartsNo+PartsTable[2,i] then ; I- I# G3 m5 \$ i2 h4 V, D+ U0 p
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
) J N, I/ f2 |% @/ S' h# V
; {% M2 J7 r2 E* [2 s end;1 m& j: ?- O" ~( V
i:=PartsTable.YDim+1;. _& X- \ h; f) P) `' k# l
end;9 g& W. S8 i, o) M7 ]* S* T
m:=m+PartsTable[2,i];
" G* |; H U2 {4 p next;9 K+ r: f7 }4 Q( z0 B F" F8 c1 j
8 l/ L& J Y$ ?6 O) F Buf:=str_to_obj(sprint("BF",@._From));
! D+ P' g: l v; s- V& l$ U1 M' S @.move(Buf);/ [; k9 K" L- s
end; |