这个例子昨天正好看了,话说那本书的例子都很不错~
2 t7 Y* G; Z8 E不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
2 a/ d! y, v/ X+ K5 p8 dis$ \$ |8 y0 u$ S5 X9 J
i,no,m:integer; --定义整型
6 e6 q5 p# }7 S, b+ r' ~ Buf:object; --定义object
5 S' s& y0 c" @do; j& Q; i! }% f3 }! n% G! ?, k
m:=0;
# W$ t% t; S) Y) V+ K) y no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
5 z- V, s$ j1 r* B- q( v# { for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行; Q( i- M* \# o$ h' h$ H
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
; j$ g! M" U- ?" f @._From:=PartsTable[5,i];
) _7 R; x( B8 E8 W: f @._To:=PartsTable[6,i];
* l) n1 ]7 C' ?7 W0 h, `! u if no=PartsNo+PartsTable[2,i] then
& | h, E' m- V1 I S5 P PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
. m z5 t- l/ {. a' ^3 S
; z, b' y# V: o8 q0 f end;
8 R) P/ U6 v) s! m. x i:=PartsTable.YDim+1;
& h) n* |, z5 M; |6 @ end;
- [7 K* i$ x2 _' B7 m3 m( h# e+ n m:=m+PartsTable[2,i];
# {, x1 H# @; [. `5 _% K& J [2 S next;' l) k2 l- c% B7 }1 h% [' O V7 l
, `6 s( v$ T$ W' x' a0 U
Buf:=str_to_obj(sprint("BF",@._From));
9 y6 {. o7 X4 }; a: a8 T- V @.move(Buf);
6 L- ^) ?* W6 G* zend; |