这个例子昨天正好看了,话说那本书的例子都很不错~
; D! M* y& R4 n' |- N2 F3 Q不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。& v, h8 W9 R' D2 f, M {
is3 T& A/ E& u" W# P1 y) N ]$ Z: o2 D* N
i,no,m:integer; --定义整型' d2 t: f# P5 D1 \4 x
Buf:object; --定义object9 t4 J1 P& D+ ?2 o. Q! F$ e2 t) X
do" \! F) j" {: H0 p O$ m8 l& A7 T
m:=0;
: w* k8 d0 }+ y2 X! s$ F R0 U% q no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外); S6 o) Q1 B0 W" F, L* ]
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
: h6 A- @& f! {1 O1 `' n if PartsNo=m and no<=PartsNo+PartsTable[2,i] then - {* z. y; ~2 V& p: \0 }+ g) y
@._From:=PartsTable[5,i];
6 |) N, v% P% w$ l @._To:=PartsTable[6,i];
& V/ t4 E! F6 h& D if no=PartsNo+PartsTable[2,i] then . Q, {: v$ O' W( M. h
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)" |- o# V% Y0 s
" F' Y# V5 y$ _; V4 d! |* H' n
end;
' D. Q) g7 R% S: e1 S3 \ i:=PartsTable.YDim+1;
5 V, n) G& t% k" o% y2 g6 z+ J6 Q/ A end;
* ]/ `3 t, T- Z7 O& w m:=m+PartsTable[2,i];
+ }3 R4 c( v/ U8 _ T next;# A: Z- ^/ c6 Z& e, r
6 e! w) v7 a& {4 a$ _ Buf:=str_to_obj(sprint("BF",@._From));6 S) F6 j$ M' r9 H! s$ B
@.move(Buf);
% B" \) I) `2 l5 A- U5 w, Fend; |