这个例子昨天正好看了,话说那本书的例子都很不错~( n8 A% _1 Q- i7 }% U/ A7 j; S
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
2 \. |- E; t( j& F& f! k' N' bis
" J5 }4 M' o5 V [: w7 c- y i,no,m:integer; --定义整型' |$ Y# [" m! K) h* `9 k
Buf:object; --定义object' \2 a5 L) |" _5 @
do
. `$ v6 w; U7 a1 Y( R1 \" T: N m:=0;3 ^0 L# ?* L X0 q
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
" G2 w9 m, p9 f, t+ Q for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
/ O0 {. L1 U" Y5 e5 W" `4 X if PartsNo=m and no<=PartsNo+PartsTable[2,i] then $ H T' M- B! n5 ?) `- i# F) l
@._From:=PartsTable[5,i];
* I: N0 |% H* L, |! X @._To:=PartsTable[6,i];
* L3 @9 H# H7 u/ D( H if no=PartsNo+PartsTable[2,i] then " O2 w- |' } {7 R: z: T! [6 ?
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
5 E" J$ e7 Z6 \7 u' j
: A4 X1 S6 ~ w& e* m end;
1 ]3 n' L1 c, H, d3 y+ z I/ D i:=PartsTable.YDim+1; f* ]. p' M. v W- m- T2 [
end;' F3 x. n4 e9 j% N& q! N
m:=m+PartsTable[2,i];! f2 @; V% ]; L1 t/ x
next;
4 }, S8 o* ~3 ]# O % J5 ]7 V# t0 P% D% e+ P
Buf:=str_to_obj(sprint("BF",@._From));; T: I- P8 l( J4 m. N& R, c
@.move(Buf);
`0 f f% K- S) lend; |