这个例子昨天正好看了,话说那本书的例子都很不错~8 J% a. u. B5 ~ C
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
. W% N! ^4 Q' q3 z8 yis
! p/ t h, D+ v. F i,no,m:integer; --定义整型! F9 b9 Z f+ t4 C/ W4 Z
Buf:object; --定义object" a m! I. @+ F0 a
do
0 `; ]3 \% l5 c6 w m:=0;
0 O d2 s3 Z$ s1 Q4 z! }- N no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
6 m0 X4 R! u/ @! @1 h- f/ ?0 S! m for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
6 j x+ }4 v$ B5 L if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
( `( S" i @! |" v4 [8 j7 G; B5 A @._From:=PartsTable[5,i];
0 |) I3 S% I) {1 ^* S9 y3 j @._To:=PartsTable[6,i];2 }, X8 a* |" c6 W! d0 f, i, P% ]9 g
if no=PartsNo+PartsTable[2,i] then
. [4 V3 Z' Y8 G* W9 h PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)0 H, w( B: {6 V& h- B: `
; a; a; X+ j: R9 k
end;, x9 b4 n: Z; q) j9 [8 x
i:=PartsTable.YDim+1;
1 h4 ^' e9 B7 J6 |! b; H, I6 x! f+ F end;9 O0 b6 x$ }1 y, ^5 _$ t
m:=m+PartsTable[2,i];: C/ _' ~7 n7 d) z
next;
! O# Q/ L8 N8 X
9 b; X7 t0 t. a$ v Buf:=str_to_obj(sprint("BF",@._From));
7 P" {: g. K& Y, p# `5 ?6 X @.move(Buf);" K; s, `, E1 {, B* f) J# ]. q/ p
end; |