这个例子昨天正好看了,话说那本书的例子都很不错~4 T8 j3 ?+ g0 ^2 d8 g
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。- r5 Q9 A9 V. c+ M |, V' j
is
. t& Q% n* A1 y& X i,no,m:integer; --定义整型$ R L# B4 ]9 ^8 }: K/ u
Buf:object; --定义object6 f1 p* J) G5 {
do) M. f0 N) o) S, m |4 d
m:=0;
; I6 p# o7 Z1 W& x4 O) g- m/ \* q: | no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)6 |2 O& C! T7 D8 f/ F
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行7 K9 G2 c# D( L
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
( w( {2 G" e- y+ |6 c @._From:=PartsTable[5,i]; : O2 ~ X' _ [ |1 \2 l: i5 L/ k
@._To:=PartsTable[6,i];
$ G, u& g* {3 c1 ?* f" d! P if no=PartsNo+PartsTable[2,i] then
2 k# V$ }3 d, p PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
/ A+ s8 ], ]+ U. q y: p: a- o5 F5 H$ ~8 i# M0 H$ b8 l
end;
6 C; o# |! `4 @, m# v% n P3 E i:=PartsTable.YDim+1;# |) }$ J5 K5 c* X& f; x' q
end;, ?5 r' V7 s0 _( k6 W% I$ M
m:=m+PartsTable[2,i];: [, Y# U2 ^) a4 r+ a" q% e
next;
0 l u+ |- m" T G* [; s6 M
# a/ N$ z$ A, J Buf:=str_to_obj(sprint("BF",@._From));
2 b8 V8 Y0 ]0 O t @.move(Buf);$ M$ y5 @5 i2 _+ y
end; |