这个例子昨天正好看了,话说那本书的例子都很不错~
# |; g0 J2 m/ F( b不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。! }2 s( p# z0 c9 e+ r# ?- z
is
# x. u- c2 {8 O i,no,m:integer; --定义整型
+ H4 h6 w( `8 v Buf:object; --定义object' U& @$ a+ J. i h9 o6 x7 j! D
do
! H& x' R+ u. T+ o4 m6 |; E( U( L m:=0;
% P! P/ y' i, M' A no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
0 B# C& m' [, C- k$ q* A for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
& n" o+ P. \4 s& } if PartsNo=m and no<=PartsNo+PartsTable[2,i] then : {/ S- D2 F/ p+ w% S, j! X1 F
@._From:=PartsTable[5,i];
3 |* U: S& ]4 \( a8 H, u8 L @._To:=PartsTable[6,i];
* C$ |0 d" U6 j* a" i if no=PartsNo+PartsTable[2,i] then
6 y, Z$ k4 j! H PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
9 ]8 [* d& B% r% G5 j' l) r4 C5 K6 p. U' Y5 R1 v
end;
2 p- @' f; v) v( T, h1 } i:=PartsTable.YDim+1;; S" C% k. | B& x
end;
2 k1 T- Q8 }0 v! f3 u+ T6 O$ \4 Q+ M* \ m:=m+PartsTable[2,i];% |& \9 P# E: A" v4 n
next;1 G9 d: p/ j$ c( R( I8 f- f
% v/ B- ?' q6 W/ c# k6 o Buf:=str_to_obj(sprint("BF",@._From));
. W/ P& ~# R: j# e( E7 N. F" w: N7 K @.move(Buf);+ M* [0 @4 D8 o5 [, T% e' M* X4 l
end; |