这个例子昨天正好看了,话说那本书的例子都很不错~) u* M2 P% L) i0 w/ ?+ @6 D% R
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
/ c3 k1 H: U- i/ f% ais7 B0 |7 }- n5 P$ |6 \0 T
i,no,m:integer; --定义整型
; o( e* U7 G: L6 |8 e0 ^5 J Buf:object; --定义object
% A3 J% K* I/ B, N% d$ f! Odo
. l) v4 h. V- T6 ]- R2 h m:=0;
6 g& |/ y: X9 e, c# | no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
0 ~1 J( L" t! p1 s for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
L- P0 P) z; J! y& I3 V if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
% I5 z) }" ^5 l: J2 l @._From:=PartsTable[5,i]; 2 W/ |: o8 [2 Y
@._To:=PartsTable[6,i];
: T. k/ _. W- r& } if no=PartsNo+PartsTable[2,i] then
1 _1 ^- e3 R- v& A PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
* U2 ?4 I% J& k, [* L- E! k0 j. Z" I( \& Y* R1 p8 f
end;
# ~* B& j$ R, v2 G0 f& J1 J; t i:=PartsTable.YDim+1;& n- F7 _* ]- p9 R C! ]$ N
end;
8 u& y/ H- m$ Y: B9 g m:=m+PartsTable[2,i];1 y' f: \5 m T& ~, s$ f1 w
next;$ `; d" c, ]0 f u
1 A4 V) s9 V" e7 V! g7 F1 [5 b Buf:=str_to_obj(sprint("BF",@._From));1 H- S" R' X* @5 W
@.move(Buf);
) x! R9 {+ W( P3 n: send; |