这个例子昨天正好看了,话说那本书的例子都很不错~
9 A; J( J9 J: N- _6 h/ l8 `0 C; _# W% n不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
5 u( j* a+ ?3 v& iis5 A3 d) U* q% a' s' y8 x$ E
i,no,m:integer; --定义整型' f! g, q) `/ Q( w* A/ q7 q
Buf:object; --定义object4 u+ H) a% p8 s8 Q4 _) ~
do r7 I5 r, R) C. V+ I+ \9 |- v
m:=0;
9 C, L& S3 c2 q; P, C no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)% @# n1 r% {* u% u
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
5 n, D6 N5 B- I, P% n if PartsNo=m and no<=PartsNo+PartsTable[2,i] then # B. i+ G# Q3 F5 c' I! _0 w
@._From:=PartsTable[5,i];
2 w: J( _ |/ t1 Q4 f' } @._To:=PartsTable[6,i];+ v6 h, `9 |" Q( Z) I6 @9 W
if no=PartsNo+PartsTable[2,i] then
2 Z, f7 L4 T) @4 H* O5 A PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
2 x' H' F' g" _, G# q
* L4 C8 A1 ]" [; l1 e7 J end;
! S& t' o3 C2 Y: Y* z( Q" ] i:=PartsTable.YDim+1;
! L d \9 s; `5 J' r9 s end;! W3 R2 C( l7 {1 u2 t
m:=m+PartsTable[2,i];
: _# P; B1 V2 u! t% y+ Q. I next;
5 m. w ?4 C( m; Q z- K ' {# i, m3 w+ t+ v: ?
Buf:=str_to_obj(sprint("BF",@._From));! T$ a* f6 o* @3 I0 V2 B4 r3 }
@.move(Buf);2 Z/ \+ f/ A) J
end; |