这个例子昨天正好看了,话说那本书的例子都很不错~$ e* `1 z$ u8 f2 L6 t$ t( q3 ^
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
0 [( J; g7 b9 x8 D E6 B* R: cis" P0 D0 z9 Z% z, a) S8 Z% z# R
i,no,m:integer; --定义整型3 }5 C' H% T$ @- o: k
Buf:object; --定义object
, O( s% Q# A: N# g8 ^do" Q' N0 m( f8 c" ?
m:=0;
2 D9 O! ~+ l& t8 j, {6 n no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)5 ~& A6 a$ I. e; a( P
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
% z; P+ Y0 E$ z Y4 B0 s if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ( T) a* _- m8 j& T0 W
@._From:=PartsTable[5,i]; + K: b% b* R2 b- i" ~9 {" q" o/ O
@._To:=PartsTable[6,i];% i g1 g# ^0 P: @) s
if no=PartsNo+PartsTable[2,i] then . _( w# G/ i( t$ X* ~
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
0 t. [& b3 E/ E2 {8 y" J' k$ k6 _4 G, k
end;5 F9 X; i; {: T* N2 h
i:=PartsTable.YDim+1;
/ r* d4 Z7 \; s) S& w/ J( P+ E end;
6 Y+ d- D$ D( S m:=m+PartsTable[2,i];
- o7 f( v& n* m! M next;
R- l+ b ]9 H2 e% x
# B. v, L% c; O* ^, `4 U; } Buf:=str_to_obj(sprint("BF",@._From));
* _9 g- W7 _) V5 K5 j2 ` @.move(Buf);( t5 F$ Y0 d+ }5 b+ g) M
end; |