这个例子昨天正好看了,话说那本书的例子都很不错~
8 D9 n. Y1 o9 r/ c0 Z不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
5 [% C% V, I3 K6 W% K6 Nis
+ R( w) n% k& ~7 o6 W* b i,no,m:integer; --定义整型+ c, n I8 E, e$ B( V, F; W) R
Buf:object; --定义object$ F/ P0 ~- w# }' Q
do/ F4 s: K) @ c
m:=0;" n& ~+ M8 O/ x1 L0 m( M0 t: J- c
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
5 @6 c" v4 y$ a2 I$ J: u for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
, l3 a: N4 E0 }* n if PartsNo=m and no<=PartsNo+PartsTable[2,i] then # L2 @9 F, W5 }* m& S1 s* b9 A2 p
@._From:=PartsTable[5,i]; - {; f3 J; s9 ^: o1 F, T2 M; b. s: S
@._To:=PartsTable[6,i];
. W9 A: r% G0 ]$ D2 M if no=PartsNo+PartsTable[2,i] then & o2 ~/ m! l% T; \1 e( e- P" N2 M7 n
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)# W: T: \" J7 w3 t+ I& ]& P
% ~" ]7 u! h$ C6 k3 @" f/ Q; E
end;. u, _7 \' v0 e) e, ?& g: W! f9 w
i:=PartsTable.YDim+1;
$ Q5 X- F% ^/ E end;) O3 u9 i# d8 ?5 m( R' i
m:=m+PartsTable[2,i];+ K$ G* e) U6 i
next;& G2 B9 V0 R4 \ n! o
8 K0 \' p9 V6 X$ ^% d8 J6 y7 P; I Buf:=str_to_obj(sprint("BF",@._From));
& r! ]5 E/ h8 Q2 } @.move(Buf);
( O: y0 a+ Q* x* u1 Send; |