这个例子昨天正好看了,话说那本书的例子都很不错~5 q! q6 @* u. e; n: Y
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
! \, e2 S8 N, S$ gis
0 X3 E, p/ h8 w# J i,no,m:integer; --定义整型- `' f2 `9 S. E* y
Buf:object; --定义object3 [# ?2 b) \* T, z6 i" J
do
: M) x" V6 f- g9 X2 S$ Z1 q m:=0;& U# G: G/ C1 i1 I
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
& ?7 g3 T ?+ X5 h for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
6 k& N7 a$ S# e9 H, S' Y% ]0 K( Z if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
- h! z3 R& C% B @._From:=PartsTable[5,i];
1 `! D: z$ s! a6 f/ L @._To:=PartsTable[6,i];& Y0 Q% W! v0 V) j9 d& Y. |5 X
if no=PartsNo+PartsTable[2,i] then
$ y k9 U4 q+ p7 m0 k PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去) r7 W1 \5 h: w7 g1 `: ^' x
5 f+ }+ V3 k# h l8 I end;
$ E+ N8 `7 ~1 w4 Q* s4 b- a i:=PartsTable.YDim+1;' f1 @# N- E4 @
end;/ w0 ^* z$ ^- e9 a1 v
m:=m+PartsTable[2,i];9 u% A' g. p! p2 w- l- e0 S
next;" M9 L7 [1 {# P! T
3 ]9 _3 n& G* U! d Buf:=str_to_obj(sprint("BF",@._From));
' F; V" l( C2 y3 ~* p$ D( i @.move(Buf);
$ i+ U& i# A0 A$ {% W, ^end; |