这个例子昨天正好看了,话说那本书的例子都很不错~
+ \7 x- J0 U2 @不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
% H: y2 P" B" F9 ^/ E6 Q7 Lis
* Y8 `! T5 F" |$ H i,no,m:integer; --定义整型6 F& a' G$ A5 g4 @
Buf:object; --定义object. q2 x B) D$ |/ I* A4 |
do) j5 i, d! S f; B: x. V5 o* T9 V
m:=0;8 p4 ]( _( K# ~" G) r; J
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)6 B3 L4 u9 h) z' z0 l v2 V' n" L; Y$ ~4 i
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行. m* [9 V0 R% w, P3 T
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
; e2 R# r, [3 t/ p& V$ }+ X @._From:=PartsTable[5,i];
2 r2 J% `6 o/ m' h' z @._To:=PartsTable[6,i];
7 d1 m1 \: L/ Z! o! i if no=PartsNo+PartsTable[2,i] then
% [% p& G8 W( S9 W# A" F PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
3 t% p9 E& x; F+ ^) K$ A4 L0 C5 _4 x1 p! v
end;
; r8 r" O6 V* U1 } i:=PartsTable.YDim+1;8 p: a, W( k4 S6 ^# a5 x" M E
end;. x/ J+ K; V' v }9 k) j q
m:=m+PartsTable[2,i];
6 U3 y) L) s2 Y0 B2 A next;
7 |) e, ]- F: |+ Q$ r 2 [" f, G m) G- z1 i8 P
Buf:=str_to_obj(sprint("BF",@._From));% `. T$ i# r2 {0 @
@.move(Buf);1 r% ^% A5 n5 s7 a9 r) V
end; |