这个例子昨天正好看了,话说那本书的例子都很不错~' b5 S) Q$ ` c
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。3 ?, c) g& }8 \* H# O( o6 K: @9 J- a
is
2 c# b3 o* Y) \1 G: K i,no,m:integer; --定义整型
* }' a/ }" X, E, U4 m) h Buf:object; --定义object1 d: V* s0 L% l$ i) g6 ~
do
5 s3 z9 q k) `/ M9 d" @) | m:=0;5 q: h: u# h/ Z' Q& y
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
2 C7 m# ?3 g; K( k: L3 ^ for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
( z% z! x, G7 e if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
5 `% e9 s+ \$ u: {6 L9 z, V+ A @._From:=PartsTable[5,i];
: w% R a0 Z9 s. Q& R0 r2 _7 E6 a/ F& Z @._To:=PartsTable[6,i];& U' P2 ^, v! E: ?' ]6 y
if no=PartsNo+PartsTable[2,i] then
5 n6 `, {* @0 {2 y* X% i PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
. x+ ^1 X( _7 a$ r3 A% m+ S, \* _. X- V" m2 w. ]; ~4 c
end;
( f) j8 L: P5 ?( k& G% \ i:=PartsTable.YDim+1;6 W+ ?0 x) p/ m: U" [+ D
end;9 J( m& o* @& h9 n. `
m:=m+PartsTable[2,i];
7 `% v B* O4 J9 o, m next;
% Z8 Q* S0 V! N/ G5 Y 6 |& E s% ^/ r$ d0 c
Buf:=str_to_obj(sprint("BF",@._From));
1 |, P4 V( F1 z! F: [ @.move(Buf);7 F) k( S4 m |0 _! d: y6 k/ e
end; |