这个例子昨天正好看了,话说那本书的例子都很不错~
, {4 J+ M. i) {$ L不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
3 P( x+ L( j5 f" x+ k, P% }is
" X5 u' l3 ]$ v4 U1 g M i,no,m:integer; --定义整型! t' Z1 K2 h& A# }8 `
Buf:object; --定义object# a/ y7 Q- [# T4 I' P3 x! M" B
do
6 K) d5 p4 t. a+ R) e m:=0;
: R! C4 t, d0 e no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)& L$ H, e8 c% S6 q( Z6 m8 Y
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
, ]( a7 e1 g: n' W if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ! |5 `) b' L# ^4 M# ?
@._From:=PartsTable[5,i]; - ]+ ]8 P" q, A% m* _
@._To:=PartsTable[6,i];1 s' n5 j& ^% h, d9 X9 p: g2 Z
if no=PartsNo+PartsTable[2,i] then # ^% s( W7 o- U$ I
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
& l# ~: W9 O9 _* }/ T3 c4 X9 B& D6 m% s6 l
end;, J6 {$ m6 f2 a5 e* y
i:=PartsTable.YDim+1;
$ e+ N* Q8 ?- a end;+ M4 i# l* k( E. X2 e
m:=m+PartsTable[2,i];
) N8 L4 d9 ~: o; y next;
0 i: O! B1 A& g6 ^5 s H 1 W" ^8 ^: H. h3 U5 C3 d2 [' T
Buf:=str_to_obj(sprint("BF",@._From));
7 ?' e7 X* I% h) e/ M; R6 \2 O8 f6 _ @.move(Buf);4 @+ g& z* o6 H
end; |