这个例子昨天正好看了,话说那本书的例子都很不错~
( Y/ O- L; z1 v% g( c8 t" l不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。, P" i$ E, \% a. b" z! F7 G1 x
is
. b& R) J s O$ m0 `+ n6 _( I8 S i,no,m:integer; --定义整型
6 M8 W) ^+ {3 T Buf:object; --定义object; p$ G; e9 o$ y" C3 q- s/ d1 @
do+ K: _$ i1 N7 Z1 S& r
m:=0;
7 X3 V0 c* g/ T no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
0 M! U7 U/ \5 g for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
+ Q p9 O) C' M if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 3 L$ J6 ?+ g: W5 j. @* o$ a5 n
@._From:=PartsTable[5,i];
3 ~- n$ e& T- A' I @._To:=PartsTable[6,i];9 }! n+ e5 |" H3 F: z" D
if no=PartsNo+PartsTable[2,i] then
' @. ?: }& i( z, d PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
- P+ G) n t8 a. O2 B/ y" r4 Y9 u" u
end;
& H! E, z9 Q3 I i:=PartsTable.YDim+1;& N! c' } G- v) ~( ~% { h5 X
end;
) x# |" l( ]. Y5 ?5 ]% O m:=m+PartsTable[2,i];
0 i/ i* b$ g- g/ N/ O6 ~6 o next;
2 @, f. R. C' r7 R+ R7 Y5 N 3 a1 U. a. f' |/ j8 m8 Y! e Z3 [
Buf:=str_to_obj(sprint("BF",@._From));
5 T! p4 E5 `" {0 o/ Z6 C$ z @.move(Buf);
+ r9 F3 R H$ ]% ^7 v* Nend; |