这个例子昨天正好看了,话说那本书的例子都很不错~6 @& T3 @7 e% X% U6 q R; g+ ^( o
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
, ]- N* u* ?- @) y$ r" s- Q1 |: Nis
* M' g ?0 F* h# w1 t! y* e' x i,no,m:integer; --定义整型
$ T/ P3 z/ F; {$ c N" _2 k Buf:object; --定义object: ~) A: v0 c3 G% U" }1 }
do
a4 \; A5 q* [5 f. a& Y m:=0;
2 d9 s- K3 N+ X. | no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
. c W6 ]1 E; }, _% `3 v" e( \ for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
4 b; [6 W- u% I- p# ^ if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
9 R( q6 \0 o3 \% r. B* _ @._From:=PartsTable[5,i]; ) ]; i5 K8 p3 t/ P
@._To:=PartsTable[6,i];
. g( M5 N! f8 `9 f+ o, e# E* P; n if no=PartsNo+PartsTable[2,i] then 3 T8 F) N, p) \; ?
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
0 T7 Z* ?' ]1 T- }" ^
: n( h3 t: f F2 W7 ^ end;1 v. ?5 `0 y& \, I$ X6 W
i:=PartsTable.YDim+1;
' J+ D, k* l/ x& S end;2 e" Y! X' q3 g, V2 z
m:=m+PartsTable[2,i];- \6 n$ L. F- G9 t; t
next;( Y! i4 i1 b/ G& F d( ]9 G" p; u
8 X6 b% L% l& P. T Buf:=str_to_obj(sprint("BF",@._From));
/ f( H* K4 W3 O1 P- @! z @.move(Buf);
" T, w( D& o- D9 o2 S3 ~end; |