这个例子昨天正好看了,话说那本书的例子都很不错~6 k' S. E/ W, `! O
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
4 l" l0 Q, U R5 {8 Xis v2 Z. x- C. U; X) i
i,no,m:integer; --定义整型
' `( } k. Z* k q f* P Buf:object; --定义object- k, M$ M3 |/ ^4 R% y0 I' T
do
2 u8 w! |: y$ F$ P5 l. X5 | m:=0;
8 G: w% ^1 B8 T; A a no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
. P+ j* Z$ }0 [3 A6 u' Y5 b for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行0 J+ q, y. K8 L! v# _. K
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
0 C; ^& q' _6 m$ [) O6 Z% P @._From:=PartsTable[5,i]; ' w% T5 y8 Z9 I9 [1 f
@._To:=PartsTable[6,i];
6 D# P- f( A' {* B if no=PartsNo+PartsTable[2,i] then
- J( ?, N+ T; D# X3 Y PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
9 m% M6 R+ E, _) w+ K/ v8 _ K+ }# D1 @+ q# i4 Q& O" e( I
end;
: Q( ~. L' f& p0 m i:=PartsTable.YDim+1;* e0 U! y% P. \8 V: y" r8 _7 k
end;# s3 \1 j, ^# e9 Q2 h: p* X6 ]& I
m:=m+PartsTable[2,i];
5 H. E X4 g4 O next;
9 x* Q1 e2 q2 g }6 l. ~ ! f2 f- f* H2 Z8 h- R* v& i
Buf:=str_to_obj(sprint("BF",@._From));
8 }1 A' P- l+ f3 V8 Q @.move(Buf);
% r$ ?# x: D4 H/ \end; |