这个例子昨天正好看了,话说那本书的例子都很不错~
0 B2 _, s9 Q, U$ a" } H, k不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。$ E9 x* {! O7 p8 x1 m$ S
is
% j$ h# W* g; q i,no,m:integer; --定义整型# t. J8 ~' b7 [
Buf:object; --定义object/ j) e4 }: y& x# C# n" q* |. P, B
do
7 |3 k0 z9 h: J0 q9 S0 S5 B m:=0;
$ S- h: D* y/ l5 M' D no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
9 n+ q f) g! }* e( ^ for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
- Y" O2 x$ Q8 m" U if PartsNo=m and no<=PartsNo+PartsTable[2,i] then , X8 o7 E F9 x/ V
@._From:=PartsTable[5,i];
) J8 p& T6 O# p: @; l3 d) J( D @._To:=PartsTable[6,i];- E: q1 c* _4 p
if no=PartsNo+PartsTable[2,i] then
) }( P) Y9 o3 D5 E PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去), r- U* j6 Q4 R* P
6 _/ S/ k$ j X& ~6 O end;
( ~5 J6 W( z- A/ w/ z% ~ i:=PartsTable.YDim+1;0 F2 L) `3 |" {0 Q' K* `; K/ @; L3 U
end;
; B2 t) N/ D w" t+ Z/ b0 e2 S m:=m+PartsTable[2,i];
$ j7 l% {' L, M next;
$ t* L9 ~. A* O2 j" k! `
0 z& R" s% A9 u; T9 S Buf:=str_to_obj(sprint("BF",@._From));
2 i5 r# n' [' o1 L- A$ T6 n) A @.move(Buf);
; e$ X) X& ~1 |6 eend; |