这个例子昨天正好看了,话说那本书的例子都很不错~
# [& M+ A5 F9 h( v7 d7 ]3 ^5 N0 ?不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。/ t Q, t- |9 p7 v9 U+ d. N7 d
is
, e! O9 n0 n8 e7 H; A0 T) O i,no,m:integer; --定义整型
+ T+ ]0 C9 p: \+ Q% [. J" a Buf:object; --定义object. m4 q# h0 h6 T# a, ^
do2 `5 B" U! W8 F* P; y) M
m:=0;
' J& s' b% ^0 a' J5 ^ no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)/ |1 ^* \8 Z$ m2 H
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
, ]! O% w0 S; m4 {/ q6 c% |1 _ if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
, ]' j5 c3 t6 k7 I @._From:=PartsTable[5,i];
% q4 g* k7 ]/ g. k @._To:=PartsTable[6,i];1 L% R8 x* x8 d2 B8 e$ Z3 q. @' c; B
if no=PartsNo+PartsTable[2,i] then - `/ V N6 I2 c3 m: Y O
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
. @3 K: ~# Z6 S! X) r4 W
9 z' E5 L! o, z: m) z5 p6 G8 J end;
- r2 U1 Q+ [, R6 \0 o6 ~9 w1 e i:=PartsTable.YDim+1;# ^7 t' ^* S: D% j
end; ^. N# H4 r9 r* N4 m: y5 P8 R
m:=m+PartsTable[2,i];
+ r: f( Q) {: { T7 c next;
+ L4 j6 z, U. [1 u4 S/ u ! c) f9 w& Z- h: L5 ]
Buf:=str_to_obj(sprint("BF",@._From));
, M' J, w. ]+ X: c" a7 I @.move(Buf);2 F$ o+ K! P; Z" @ L- z/ G6 j
end; |