这个例子昨天正好看了,话说那本书的例子都很不错~1 p: \! S: V5 v* @8 T; w
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
- N! x/ N& d, K7 Dis
9 i% ?" H. L- {/ [ i,no,m:integer; --定义整型$ Q( U5 g6 t2 m8 V" K% M) k
Buf:object; --定义object5 T/ P4 o6 s$ [
do9 G# m. g: o0 M
m:=0;
% u2 J* X y2 h1 |5 ^5 H+ d no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)) w' C7 {8 Y' G
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
$ T( C/ S. }1 O- Y if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 3 e$ K- f4 a8 v) T
@._From:=PartsTable[5,i];
0 W. j: J' } r D' q1 y1 {( U; | @._To:=PartsTable[6,i];
! Q, F) R* B' i5 Y4 y if no=PartsNo+PartsTable[2,i] then / k/ q1 r8 L9 j) Z2 o5 H# D
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)8 G2 a8 _1 Z. B; J" K* J+ d2 b
# A! {7 Z- x! \/ W) a' l7 s6 h, N/ f end;$ m) x$ s* l2 s& ~
i:=PartsTable.YDim+1;
9 g8 p g1 L4 I3 P8 h' P* i8 c0 z g end;3 h9 N. ]& D" m" `: w7 z
m:=m+PartsTable[2,i];
4 ?; Y* M/ w$ j9 h" |1 z. \ next;
$ A7 Q2 q/ ~& f5 a, ] & [9 b8 d% q, C# s# f
Buf:=str_to_obj(sprint("BF",@._From));
y% I; X2 |% A ~* c4 @) v, j8 S @.move(Buf);
) ` S" |7 o, h- wend; |