这个例子昨天正好看了,话说那本书的例子都很不错~1 k! f6 T% H6 J" W
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。 L6 h9 m% v" _
is
0 @, U( `* q: l5 Q i,no,m:integer; --定义整型& O6 d/ ^8 K4 k+ J c) m$ I
Buf:object; --定义object
% N* |: K' \# ?; a! _6 s7 a& Cdo
2 }. i: G0 L6 t- x- @ m:=0;% p4 m, r, E9 o
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
6 g+ T9 b0 ~9 i0 ^0 y+ h8 \( e$ F' J for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行1 K- U6 r) I$ Q& G' H) ~) H
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ) P" k% x- ? J4 p: p6 E
@._From:=PartsTable[5,i];
' s% e" w2 p1 B7 s+ { @._To:=PartsTable[6,i];' M0 p" m/ d' r, R7 P
if no=PartsNo+PartsTable[2,i] then % o& z/ ]2 q. n! l* N$ j
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
* @' z1 f7 F' L; S5 {: @5 f0 K5 b# R- {+ [8 X2 e
end;
7 p O0 e4 O' | i:=PartsTable.YDim+1;
# U- \& n9 N8 X8 A) ]6 R. J end;
. W9 P a9 ]7 i, }; ]/ Z; Z( } m:=m+PartsTable[2,i];
$ ^0 @/ p1 F& o. a next;
; I& l- k* s, b$ ^5 S9 y 8 L b% Z, e& Y1 z1 X
Buf:=str_to_obj(sprint("BF",@._From));; v1 I7 M+ m; j, g& a* ^3 {
@.move(Buf);1 H2 m. V& D, y/ `' }. Q/ n# T
end; |