这个例子昨天正好看了,话说那本书的例子都很不错~# S) t8 f0 w, X- j
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。' E, c9 U, l+ X" Q' T
is' p1 ]1 M# \' L# y
i,no,m:integer; --定义整型
) u, }% Y% |* P& A Buf:object; --定义object$ r, k3 G$ T" E% v% h2 v/ v9 b# X0 C
do
6 I4 t# N1 o/ i m:=0;' G+ ?" _. g5 ]
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
3 t5 a8 b9 R; i, a8 } for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
" v8 f; P- ~$ L6 d$ x; J2 W# l if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ( S3 n3 L1 U) R$ f; @
@._From:=PartsTable[5,i];
; E3 T1 y* v$ H( } @._To:=PartsTable[6,i]; v6 N2 [5 c# `$ J- o' S
if no=PartsNo+PartsTable[2,i] then , j+ D3 l( ?, t" f
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
3 K: S: M% @" J. v* L, c+ S* [0 Y: z
end;
7 L2 g3 L9 \3 H. v% j4 J/ a% X i:=PartsTable.YDim+1;/ `! G9 i* n3 B
end;
: ~/ M% O7 h* [6 e6 e m:=m+PartsTable[2,i];
( c( e2 ~( ]* J. ]$ y' v0 v. A1 H next;% U1 l( V7 E' A1 n# u
. Y: h" C! X$ j1 i! ` Buf:=str_to_obj(sprint("BF",@._From)); E# L+ y+ ]& O/ }2 q8 Y+ j( E
@.move(Buf);
. m+ o1 I; z6 b+ Rend; |