这个例子昨天正好看了,话说那本书的例子都很不错~# ]3 o. c; C! }0 Y
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。; u! b) W+ ^2 } \" p6 K
is' L% ?3 S3 g- t9 G r/ O
i,no,m:integer; --定义整型
* A% t( M9 [9 A( R6 b7 b Buf:object; --定义object
. j5 [4 j' |) x% m8 p4 `do
4 X; b7 g1 ^, {1 i3 C# @) w% ] m:=0;8 v9 k) B) g4 R: [7 D4 _- o; R
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
! o' J" p0 x n for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
, v* s3 {! U1 K' e if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 1 T% C8 I0 L! y S$ H* J# c0 X7 P
@._From:=PartsTable[5,i];
2 E5 ]' E* H$ D* @# T1 m @._To:=PartsTable[6,i];8 f) Z$ @ N* c' p% T
if no=PartsNo+PartsTable[2,i] then P" Y; W3 S6 T9 s
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
# H( c% N- c" X& k& ?; _6 ?2 Y2 N1 [! K' [5 p4 y
end;
% X: E0 _6 V/ ]7 u$ ~: J( F i:=PartsTable.YDim+1;8 _; s. [2 {' x; Z
end;
( H m2 @" ^ ^ m:=m+PartsTable[2,i];3 h4 ?7 b6 C# c( ~
next;# V& x* \9 w ]
9 T; d( {, ], x U' T, R/ j
Buf:=str_to_obj(sprint("BF",@._From));
: r& ?, c [! c% {* W9 E \& o @.move(Buf);
& y% {0 @ ^# g3 h+ Vend; |