这个例子昨天正好看了,话说那本书的例子都很不错~
- y+ ], r0 P$ X! \; i! b3 b不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
* @2 v4 j, G+ u5 [2 u0 b, ais
4 @! X$ E/ @( |. V( T4 M5 W5 i i,no,m:integer; --定义整型
/ D% G" s! h# o0 c4 w) [ Buf:object; --定义object, I; j1 d" @. ]' H1 w
do
( u( J5 R" @) K+ \* W. {4 T* Q m:=0;
* }" i8 {, I: [0 r* x( S: \3 B/ R no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
i; _, A. U* ]4 R for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
" h6 u- x5 _& F" Q" w if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 1 e; @- y( {& ^" N/ A6 |$ N
@._From:=PartsTable[5,i]; 4 a+ u: o3 q+ j, {
@._To:=PartsTable[6,i];
' s, V2 T/ L0 F2 M$ L e+ x$ k if no=PartsNo+PartsTable[2,i] then
7 m3 c' R @ L2 L0 e0 ~ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
0 Y4 G9 e5 m& Y; t0 k/ w! G. H* C* d$ a% f) A( U/ e1 M
end;# Q. f% A# B. I0 `) \4 I
i:=PartsTable.YDim+1;/ x0 ^: m, j# `7 q& U; \2 @" w! B
end;
$ J, o! _+ d5 o& N$ D m:=m+PartsTable[2,i];6 B' A7 G3 {5 C6 s* c
next;2 u# d% U0 t. Q$ r
- R' M1 \* i$ b( g/ y
Buf:=str_to_obj(sprint("BF",@._From));7 J+ j3 r0 d$ ?' t& w
@.move(Buf);
+ N" b5 V& ~8 v% @# Wend; |