这个例子昨天正好看了,话说那本书的例子都很不错~8 w: }: z" K# s2 x
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。4 `* s% S7 b% g' a) U
is8 v1 L! o" d3 t0 Z2 o# H6 [; w2 y
i,no,m:integer; --定义整型
0 Q& ]1 i% \/ y/ E Buf:object; --定义object R: _- Y/ O1 E3 P* Z3 r! ]
do
@! B% L) a# F) u/ i m:=0;
7 `- d* ?* W1 l, o/ z6 N7 v no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)$ L% @* Z$ r& f" W
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行. d. I. M, P5 b' Z% R" a' e
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then $ W1 T5 y* B- G1 ^4 y
@._From:=PartsTable[5,i]; 9 d$ q6 W8 }" q" V, j! c3 b
@._To:=PartsTable[6,i];
; a Q3 v9 ^/ r4 f$ K- L+ m) [ if no=PartsNo+PartsTable[2,i] then
& j. J2 p: W' B) n' ` PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
0 n2 @9 h, F( F6 H; r# d/ e$ b, c, S8 p* P9 {
end;
9 g5 b' C# F6 `7 B; F* f i:=PartsTable.YDim+1;& |" o% ]6 t* x9 L# r% E$ w a
end;& j/ _% F0 U( W1 L& S2 `
m:=m+PartsTable[2,i];
3 o- |- J$ h/ D! F next;! \" h, l% d! X5 H; E. v o3 J& Q
. A1 y* |6 ~6 ]3 q Buf:=str_to_obj(sprint("BF",@._From));
, V, x' R4 H5 D# g7 j @.move(Buf);
& e* d: u% X/ A! b8 H7 j. c# oend; |