这个例子昨天正好看了,话说那本书的例子都很不错~7 d2 e8 E8 i- E+ x/ y: M
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。, t$ i |% \' R6 H4 h
is
: f h. c- j4 I) ?( M i,no,m:integer; --定义整型
+ y; i; h( u8 m( {* G2 w3 h( r Buf:object; --定义object
( [5 A5 b+ q8 p- S1 {* `do, ]* e) x, ?) A9 h8 t# Y
m:=0;
3 V- h3 O8 }& R4 R# ^2 z7 S no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外), n0 Q0 D8 S) e& u9 B9 o6 Y9 S
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
% x( @( \8 h1 f2 ^; N1 i9 z if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
7 t R0 Q2 c' d8 h# U+ f& c @._From:=PartsTable[5,i];
$ ]* T. F$ J6 m: c' M% v% C, ]& U @._To:=PartsTable[6,i];) g) w- l0 c: U L' k
if no=PartsNo+PartsTable[2,i] then
! G/ A3 C L9 g' t" y/ U+ H, k% v8 J PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)( S/ q$ J1 `+ v q1 o3 J/ x
0 |) b: K! D) ?1 Y7 t4 w end;
4 @+ B' \5 Y) _; d9 U i:=PartsTable.YDim+1;
% `+ \' h& s. B T) [% E0 l4 n end;+ {8 U5 k1 h* a; Z/ I' ]0 k9 p* J
m:=m+PartsTable[2,i];
, p f0 d! W! G2 F3 q# |7 ?! m next;/ j0 T& Y ], ^: u5 a
; C" d6 h! h* k/ `; c( w* G Buf:=str_to_obj(sprint("BF",@._From));# @$ D4 m4 d- n; w u1 l6 v
@.move(Buf);
9 l; e& ~. F8 t8 \% U- N: w. Wend; |