这个例子昨天正好看了,话说那本书的例子都很不错~
' G' J& N" H) D不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。6 q+ W5 F7 W# T3 o) ]
is
5 a- L+ f) B+ w/ M( [( r! [0 K i,no,m:integer; --定义整型
' z% o! v- R! p0 E Buf:object; --定义object
8 d6 S( t1 I) C/ odo2 R) m. d4 c1 |& @ o
m:=0;
! }- |3 f8 I. P! P( v# C no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)8 }9 Z3 M* f _% v; r
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
- ]$ y! }+ o4 f if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
! p1 E/ ^, I( d- w; H @._From:=PartsTable[5,i];
4 j. Y/ s+ e1 M3 e) [6 Q- y0 W7 u @._To:=PartsTable[6,i];3 `9 Y" R8 l7 ^" b u' j- l
if no=PartsNo+PartsTable[2,i] then , u& g$ X: J& }1 z: a# e- h( {
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
; X' M! a) A) |/ Y% |$ y" ]8 M. J' @% ~
end;
3 Y2 _; ~0 H' O$ E i:=PartsTable.YDim+1;, P) y: s5 p. r0 M, q0 o" x
end;
, Q! f" ~( ]9 x V" l# W4 Y" m' ^ m:=m+PartsTable[2,i];, }6 j f5 w. L" V9 D
next;
# _. k' k( C c1 Y* i6 K, t7 M ! N# J! @; F' Q- }4 f. s
Buf:=str_to_obj(sprint("BF",@._From));
) M! H& t, C7 E* q! x L5 n7 ^ @.move(Buf);' E% ~6 ^( D; u3 r
end; |