这个例子昨天正好看了,话说那本书的例子都很不错~
" x3 J) d _8 R/ R) s不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
( ?) d4 c! h, A; v7 t. j5 |is, I: D. T; S; D5 g5 v
i,no,m:integer; --定义整型
2 ^2 e. r- F3 x( t Buf:object; --定义object
' a( ? G! N3 o& xdo* y8 y% ~$ \9 a- i Q% \2 n) d
m:=0;
7 t' w; a/ g7 C2 v3 Q no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)& a3 L# y$ W0 S, L2 Z; Q* Z# P5 j. S
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行/ {& S* n, |/ h6 v; V! I
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ) `. H* @: L {, F6 U/ ]4 J9 [+ b9 P
@._From:=PartsTable[5,i];
, O7 @: D. k" J# M @._To:=PartsTable[6,i];
% m5 p6 {& t0 B/ N+ ~6 H/ _, W if no=PartsNo+PartsTable[2,i] then ) f, y# {9 r+ d, {3 a
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)$ C( k5 A) `. ]7 T+ \
3 A$ g- v, f1 G' f7 R end;/ a7 f; L) h, j- a2 x7 T
i:=PartsTable.YDim+1;
3 s/ U( G3 G% ?" X& @( S# E end;* j, [4 k- _( f1 T
m:=m+PartsTable[2,i];
( P: D; {! [. k. |' S) m' a next;' g6 V9 f1 |+ `1 `$ \8 a9 z
) Q. U5 ~0 O/ z! p3 f; z1 q1 m+ M) I
Buf:=str_to_obj(sprint("BF",@._From));
- ^* W5 L7 i( k% b4 {% A @.move(Buf);
6 k1 n$ P8 c3 rend; |