这个例子昨天正好看了,话说那本书的例子都很不错~
4 v& x' Q: R2 A. ?不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。7 l+ U; ~$ k& \3 C0 e
is& W* Q) I6 k- z0 h
i,no,m:integer; --定义整型" P6 p# `1 c# R1 w D4 Q. b* @
Buf:object; --定义object! `9 n L; v' h, X8 H5 s
do# n- r" ~7 h7 X
m:=0;& ?3 w% C; A$ ~ S
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
8 Y$ {2 z4 }/ s5 `+ l for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行" c$ o1 X( ]+ r, a W- W4 ]
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
! \0 J4 t% Z$ n/ s% m, x @._From:=PartsTable[5,i]; 5 ~7 V" n- h; K3 [" L! ?
@._To:=PartsTable[6,i];/ J& A$ M. r& G' h3 l; e
if no=PartsNo+PartsTable[2,i] then
8 E2 ~" @0 o J: K PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)4 S* n; x& N( {
5 f! H# c; h) k end;
, ^, B6 T! v4 d7 A4 h4 G i:=PartsTable.YDim+1;" e2 Q/ h$ y# p& L' O
end;& V, R* @' x- f
m:=m+PartsTable[2,i];
" c. f. D" W) E next;
' o5 h/ u& ?: d- m2 U 8 a: D1 g2 d7 ]3 D4 H _2 O
Buf:=str_to_obj(sprint("BF",@._From));
a, W/ E$ W p2 m# @- t" n2 E @.move(Buf);
6 |( @8 Z, O9 n: R- ^# vend; |