这个例子昨天正好看了,话说那本书的例子都很不错~+ Z' G9 z9 Z: l! Q& [# R
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
+ d D, \) M7 _/ Q: p; [is3 A9 g3 j7 }+ o' S8 X
i,no,m:integer; --定义整型6 T3 @$ c3 o) B+ b" P* g3 L
Buf:object; --定义object
. @/ A7 e$ d4 xdo
! B( W# g9 B( A2 c# R4 P m:=0;) n$ W; O) L% Z" D9 ?4 w5 o: X1 _% x
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
* U7 _; y- p" g for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
& t) s" e7 g5 \! }# z if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
3 v& q/ U$ z7 R' c! V+ p- n @._From:=PartsTable[5,i]; ! Z) y% b2 k/ {. W% }0 t c
@._To:=PartsTable[6,i];% w1 t7 o2 r$ v$ m9 f- M* V1 j( X/ [
if no=PartsNo+PartsTable[2,i] then # y) `0 E# F4 t' b4 @" I9 ?
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)5 k. g4 f! N- r* ~5 [
, I, b) u' P$ j" h7 e6 v1 ?, i
end;
" T' F/ z5 A; }8 h o5 r) m i:=PartsTable.YDim+1;
4 H! B5 P' k# w" n end;
9 ~6 s# Z) {! ^4 A" u+ q& M/ c1 t m:=m+PartsTable[2,i];
8 |" m4 ^6 _. q# D3 M) K2 L" r next;+ G" s8 H6 H4 u. l
4 r$ a! ?; g$ l# L Buf:=str_to_obj(sprint("BF",@._From));
) F! d# J( R, B: F k: W( k- ~ @.move(Buf);
) `' o. C% r4 bend; |