这个例子昨天正好看了,话说那本书的例子都很不错~
, q! N8 |1 m" _ C; d不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
6 p4 c+ H. U( A1 p: ais$ h, Z. ?. N5 \5 ^* w
i,no,m:integer; --定义整型/ n$ F: }& O# F+ D
Buf:object; --定义object0 Y7 b& |/ U( t0 B/ }
do5 r" @( ^, f' m
m:=0;
1 W: E* n# t# q no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
* }& ?0 \0 t" \. b for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行2 O6 X& S, r I4 A: g
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 8 u+ Z/ l* v) _1 u* @1 i
@._From:=PartsTable[5,i];
# ~7 s! a" R2 V2 C( T/ Z @._To:=PartsTable[6,i];
9 T: ]8 D& \/ }1 D' R if no=PartsNo+PartsTable[2,i] then & O# [3 y k, {. b5 d
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)$ t1 T- J: m, |- K; F! F2 D
g* O3 @' l# u: m/ h9 _2 r: } end;
% D4 C1 N) P4 j7 l i:=PartsTable.YDim+1;0 m3 B' e8 t' w9 D1 C( I
end;; z6 A$ e! e- `$ b2 L4 A
m:=m+PartsTable[2,i];3 ?3 J4 Z3 n. D8 ?3 H2 {/ U$ m
next;2 T6 y1 f2 ~, Y8 U% f+ x) H
. \8 S2 v' i+ i( M# b
Buf:=str_to_obj(sprint("BF",@._From));; u4 h4 [6 W" v
@.move(Buf);
" o# k' r) y3 Z. a* P1 Send; |