这个例子昨天正好看了,话说那本书的例子都很不错~
8 R: [; r) k" B, F不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。, R" G* F, g# e+ M' k; s; P, G, l
is
" A6 `3 J0 M( X+ }8 U. u i,no,m:integer; --定义整型' P) |" s( }# Q$ u- m9 r
Buf:object; --定义object; g9 n; `2 E& x' S- x- ?" Y
do
5 K8 m4 ?9 C# R+ O/ ]- R7 f m:=0;/ m, G9 o2 R# K+ Y- c. s6 W) J
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)5 l2 Q: d$ ^" C* F9 Q8 q* f
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行% R+ z' y$ n' P
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
/ ]3 Y0 ^7 ] E1 F @._From:=PartsTable[5,i];
/ V( Z" ~5 g% P @._To:=PartsTable[6,i];" n5 g: p+ o, f* J
if no=PartsNo+PartsTable[2,i] then
. O6 B/ @$ C- C# f# i, e PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
% ]. B4 d( E/ ?2 F/ C! z6 M
+ t5 [2 ^5 }! _9 V# [/ p* m; C; u end;6 p$ m# k9 y3 a0 P: O6 p, o5 L
i:=PartsTable.YDim+1;2 ?* h4 q' c, M( _) U
end;
6 T* V: J- }/ P3 T C+ { m:=m+PartsTable[2,i];% e/ T! Y( E( d5 g6 W9 p+ A+ b
next;
0 e" {1 {4 U% u& q7 k2 q& g7 H
. M$ W6 L# H$ ]' }$ V7 Y$ I Buf:=str_to_obj(sprint("BF",@._From));
y2 h2 D3 Q, z0 z4 n8 S3 l- \ @.move(Buf);
7 }4 f3 c+ d S* v" vend; |