这个例子昨天正好看了,话说那本书的例子都很不错~, P/ r; @# |, a
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
. K! M+ L+ r1 G2 ?! ?6 Mis
4 |6 D1 J, R1 d* _7 I: C- w) V+ b i,no,m:integer; --定义整型' Q3 x8 Z% @( _0 v6 Y
Buf:object; --定义object
4 H* h; U5 z: ?0 O; N6 ~do, a/ ], b' u( z' y- M
m:=0;
' g* y1 O$ P9 L, v m no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
/ n4 Q5 M i) h for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行: h0 L7 g8 g! v2 i+ ~, h
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 5 T2 I# c0 d( N( ], K
@._From:=PartsTable[5,i]; 5 @; X; C. S0 @
@._To:=PartsTable[6,i];
+ y8 O2 |4 N7 Q( A if no=PartsNo+PartsTable[2,i] then . O& q5 U* E; L* p9 [
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
& ? e% X/ V# ]: ]. a# k: Y- @9 i n
end;
" s {; g2 q4 q8 V. q i:=PartsTable.YDim+1;
4 H& q% [1 P( S) x) ]; [! B end;
. H6 |$ }% H1 z! m m:=m+PartsTable[2,i];& z9 |! Z) V, J+ q# m* J
next;, p( j+ ?% P) X4 U4 p
3 w1 Y/ @% o3 R& g6 O
Buf:=str_to_obj(sprint("BF",@._From));
' u0 |; H3 ~& K$ H% G7 |8 H @.move(Buf);
6 D5 \2 U8 ^$ ]end; |