这个例子昨天正好看了,话说那本书的例子都很不错~
% M, s0 K5 ]) B+ S, k# F* ?2 w不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
' p0 p- b6 C2 Z; a9 S3 M9 Kis
$ y' |: k' V! z6 O3 K- n i,no,m:integer; --定义整型
; [6 l/ u7 j. @1 D1 B# ]1 L, D Buf:object; --定义object5 I+ ^& M8 y4 c+ T5 _ u
do
! _% c+ ]/ F3 j m:=0;
1 U$ N0 s; g! ]& F5 |7 I no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)& v* _* J: X3 A Y
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
- Z1 ~% D, I! T: L; | if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
) }+ d" ?; Y( ]2 k9 _6 R1 } P8 z @._From:=PartsTable[5,i]; $ N U8 z3 ^( z C& R
@._To:=PartsTable[6,i];; A( \; \! R6 ~
if no=PartsNo+PartsTable[2,i] then v p2 u/ W0 _: {3 v
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)) n% T4 Q$ g7 S
/ t( _( F! R% b7 i1 D" n7 n- O
end;# g5 B" }2 P# l; G. t! }) j# R/ O. T
i:=PartsTable.YDim+1;1 s7 ?9 [. I( o$ @ G
end;
0 O4 @/ Y( Y6 A/ M: F6 u) _* A m:=m+PartsTable[2,i];
- F% l& j: B3 L% T: W9 X+ O7 ?+ [ next;. t' t3 g+ X4 R' F. y5 j$ ^2 \2 }
, G: D4 X. b4 o S
Buf:=str_to_obj(sprint("BF",@._From));
$ _9 E* g9 ~. K; X& l) I; p @.move(Buf);
0 Q5 [3 \. f3 \, y, b! }- j" }- jend; |