这个例子昨天正好看了,话说那本书的例子都很不错~
5 t6 y* [' w2 A) ]2 G不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
) `5 g7 d% O- I$ v) @is
9 R, _& B( B: J: N1 K0 }' Y- V i,no,m:integer; --定义整型; Q0 k7 I2 [! K4 {' A0 P
Buf:object; --定义object
2 Z8 j) R0 Y6 ^4 sdo8 \$ d6 i9 i+ u4 v+ Z* l
m:=0;4 Q* o5 n* s4 n' _9 c! z
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)- t4 ~2 o8 B- Y; ?4 A! Q
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
" D% x, e2 W; E2 h/ e if PartsNo=m and no<=PartsNo+PartsTable[2,i] then * ~+ U L3 C3 f9 b R a3 a) y
@._From:=PartsTable[5,i]; 5 O. M R5 c! ]1 G# i
@._To:=PartsTable[6,i];6 V3 S z. }3 K* ]9 O. r
if no=PartsNo+PartsTable[2,i] then 2 E: j0 {- ~, H! o& J2 J4 k/ b# |
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)& P) c( ~% b+ F( B% Z* n) w, T0 m
% Y e; p* U2 {' _; p3 l) ^8 f% H8 Z end;
) X& b" [; l3 y" P; F( b i:=PartsTable.YDim+1;
\# S# ^. L+ F7 r; _ end;
! Z0 \# F' n n/ J+ u m:=m+PartsTable[2,i];& b1 E3 Y% ]. z) X% l s
next;
. Q8 U. X9 T/ f' [& R5 F0 q$ `" x 6 N1 E+ v H8 R: }, F
Buf:=str_to_obj(sprint("BF",@._From));
" ^# c8 D. f" P! \4 Z$ d @.move(Buf);
0 o' V4 {7 \# [8 D3 Oend; |