这个例子昨天正好看了,话说那本书的例子都很不错~
( L' U4 K9 `$ B0 t" L不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。. k" k/ Q$ l7 f9 q4 h( [/ {# Q" A4 I
is3 l `, t( w2 q& T& ?
i,no,m:integer; --定义整型5 i( d( B: @: D( E8 \
Buf:object; --定义object# T$ o& k7 k7 d; {0 k2 S( a9 W
do9 B) z2 j' |" k1 @$ ^7 D
m:=0;
9 e: u* Y ?% F8 z no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
/ ~+ c- Y9 c2 x: N5 G& b8 Z for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
" {7 H% _8 n, J6 h* c2 ~$ i; E# | if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ; G6 V" M7 V# Y" r6 K* I
@._From:=PartsTable[5,i]; 3 u# |7 [' L, n' [, z5 u7 x
@._To:=PartsTable[6,i];
( w- W( ` [, B if no=PartsNo+PartsTable[2,i] then
2 \! ^, q( j2 N. w PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
n/ N+ g6 ~3 ~/ a: `' V* {) q0 b- Z
end;
) m P1 v" g% h5 E& }7 k: u4 { i:=PartsTable.YDim+1;) F' X! m, q1 d9 e0 ]4 \3 P
end;
" a' |$ [0 Y; C7 G. ` m:=m+PartsTable[2,i];
0 Q8 m# I! u' e5 B7 Z; R next;# @: Q8 D2 \% Y
. Q; _; R ?. S1 N, C* Q5 B+ P
Buf:=str_to_obj(sprint("BF",@._From));
2 L9 O0 _7 ~6 s8 @3 T6 V( ~ @.move(Buf);
1 T( l! V, O# `8 ^- I: h" qend; |