这个例子昨天正好看了,话说那本书的例子都很不错~& o( P. y8 Z. r7 w. H2 S! I5 z
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。4 r! T3 j' S" z6 L# N* b
is
) O/ r/ N# U u i,no,m:integer; --定义整型
+ k; R% h0 o! N' V/ Y, b/ b* g% R5 } Buf:object; --定义object) e, G, P( J9 C
do/ B& ~' n4 q4 w" J
m:=0;
2 I7 U. m$ ~1 w( Q' e _/ l2 f; d no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)* w" W0 G$ z4 q( L) b" |- y
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行! o' `; _9 U4 [# Z
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
; K9 Y4 v3 P; X6 k2 n2 M0 ` @._From:=PartsTable[5,i];
( L# i4 r/ p3 J/ f% f ] @._To:=PartsTable[6,i];; m# S" M2 U3 L% x9 i! S) {
if no=PartsNo+PartsTable[2,i] then " L1 J! |, n( |- `2 u. t( i8 ?0 I2 f! n
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)5 a7 K) s- M e6 H+ d, Z4 n- {) i
( J! E, `5 u& |; y end;1 [& f! c5 `- n
i:=PartsTable.YDim+1;
0 u7 v+ v/ [' x2 _2 w& f& h end;
% K* p7 C: I( `$ P0 L$ R6 p* b m:=m+PartsTable[2,i];
" R+ X+ \" @9 R7 y. X next;
1 H& q& N d$ @* D/ I" _ 3 x3 T s! \1 L( o& W' }
Buf:=str_to_obj(sprint("BF",@._From));6 h* n- C, p T) M2 Z) ~7 y
@.move(Buf);; A& ?0 F/ g# ?; {- v
end; |