这个例子昨天正好看了,话说那本书的例子都很不错~9 x! X( n0 `/ {, B
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。# n' V% p# T# R" D ~& k
is
+ \$ v3 B6 A5 X) {7 f i,no,m:integer; --定义整型
3 Z3 @) |3 w$ A( V6 |& ] Buf:object; --定义object! d3 ]/ O' @2 l
do
' v* J. e( ?8 P- m% ?: B+ \ m:=0;
. B9 Z, Y# u2 u( f6 ~0 T# m no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
+ B- T6 V9 f( L/ ` for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
+ ~# I+ P, i. a% p+ ^7 {+ E if PartsNo=m and no<=PartsNo+PartsTable[2,i] then $ R$ J$ S5 Z" I
@._From:=PartsTable[5,i]; 4 E; Z4 c) m' [2 ~& k. }- J, c
@._To:=PartsTable[6,i];
( ~# [8 e- x) K; x! M if no=PartsNo+PartsTable[2,i] then 2 s* q8 u& m" k- q; _. D2 B
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
4 ]5 w# B4 g7 v* \3 Y! ^
9 S- C6 E. `2 ^, S7 |2 q- k: M$ A end;! k5 C* z4 B! l0 D
i:=PartsTable.YDim+1;
u- H% L! ~) q9 s7 b: g% D8 S end;
, M2 |, J6 m3 b, O8 A m:=m+PartsTable[2,i];9 `2 \" m: D# `% G6 ^0 [
next;
4 r7 j" H& \0 r# }+ l- ` 4 m% t5 i4 y. l( t; \9 ?
Buf:=str_to_obj(sprint("BF",@._From));
9 Z0 O$ K. g' h6 P Z @.move(Buf);
- a: w: |) ?* |4 yend; |