这个例子昨天正好看了,话说那本书的例子都很不错~
' V; w3 j' F P% L# G1 v不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
3 S1 m) H$ Z0 h& a# His
* S7 s7 U8 Z( K$ D8 c1 e4 C i,no,m:integer; --定义整型
" s. ^# J, m+ Q6 l0 i Buf:object; --定义object
% f. `/ `5 [7 L9 T; r, Jdo
$ r& Q6 c9 T* E% d8 \9 ~/ b m:=0;
: n! U2 p+ s: c( m( T* i! q no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
* {8 b+ B/ m5 B* X* k for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
/ W& ]- a8 @+ N if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
1 N) f; y9 m1 l6 u* J6 j* ~$ V @._From:=PartsTable[5,i];
! L2 h+ s M* k- J0 J& a @._To:=PartsTable[6,i];
) ?: O4 z o1 I, {8 v% M. l if no=PartsNo+PartsTable[2,i] then
0 I1 O; [" \( s7 R6 Q7 k PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
6 Q0 \8 A2 \2 I
0 W: u. Y, M$ |% M' B f end;
2 t3 F3 k; Z9 L1 q( Q i:=PartsTable.YDim+1;2 `# i! b! s3 X& K; ^' Y7 g& ]
end;
% q5 i B, O; s- C; q6 H m:=m+PartsTable[2,i];
, v& K4 f+ O3 A8 Q5 o( Z2 b+ E next;& K+ @: I3 v+ k5 m0 W
3 f6 m4 c3 k1 h0 O# E% \( L U0 _ Buf:=str_to_obj(sprint("BF",@._From));
/ B- }( b( @7 E! g: b7 l @.move(Buf);0 j$ r2 q- w5 Z" n
end; |