这个例子昨天正好看了,话说那本书的例子都很不错~0 k9 c* R/ A0 m$ R! V
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
- o9 |; z; q6 S2 f( W% L! j- o! v sis$ v; J( p0 ?$ ~/ Z- o
i,no,m:integer; --定义整型; @& M& a0 C0 E7 ]* K8 Q
Buf:object; --定义object
, H- C& G, p0 G, Ldo9 k+ f6 B: E! D& J# | w- O
m:=0;8 s! D1 S% M9 a: b$ D
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
! h @9 w. R5 i% q for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
) }. A3 H3 E: Z2 \ if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
9 u( H: w/ [3 m! k* `! o$ D4 x @._From:=PartsTable[5,i];
" \1 V* P' L, [% W* b% j7 Z @._To:=PartsTable[6,i];; r8 U$ g% x3 Z7 y
if no=PartsNo+PartsTable[2,i] then
: ~* L) n- c! } PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
/ T4 H% r/ V. D" _* p4 x8 S Z' Q# _, Z3 _& Q
end;' ~6 k8 x1 d% }7 h8 [1 ]1 R
i:=PartsTable.YDim+1; A. Q- b& z) q- {
end;$ t+ [. y h1 b: o7 B: d
m:=m+PartsTable[2,i];/ w, V4 v9 }% H( t0 D u
next;
9 l: X0 l3 M' W5 O: f- E+ F D $ H4 p) W% D8 N4 M0 |1 [. r
Buf:=str_to_obj(sprint("BF",@._From));
; e* l: H& {4 z7 \: o @.move(Buf); b- [0 A! |) @% _; `
end; |