这个例子昨天正好看了,话说那本书的例子都很不错~
! E C! D% M% L" V" B6 z不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
& ~' r0 g. f6 q) |0 F2 Mis; P* C. M3 T8 i7 F4 T
i,no,m:integer; --定义整型
) n2 `( y F0 k' _0 b# q5 f$ m% r Buf:object; --定义object* _- `) i0 Y; Z/ z
do
" b3 Z Q- a! U e m:=0;
- p% w }3 c# D6 s/ G: c no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)6 B. [/ Q1 v- A. y% |5 T- ?
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行3 c! o6 G/ \. v2 D V
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ; c7 Y# X+ F+ W$ Z) l( ?$ ^
@._From:=PartsTable[5,i]; 0 v! e# F, l8 I$ D
@._To:=PartsTable[6,i];
! C* K) {( g1 S' \ ~; b3 } if no=PartsNo+PartsTable[2,i] then
% I/ y9 G/ t# m0 v# f3 z) s PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
& F& O. k' v! \' i
3 T% I% x4 i" a: ]* Q! | end;6 y5 `% v5 g3 j% q
i:=PartsTable.YDim+1;
0 U/ t, S! ^3 G" q& [- [$ B end;
3 b5 {0 X4 ?8 ~) ~ m:=m+PartsTable[2,i];) u! l+ @8 G. V" X! W1 k' V
next;# R- m, v6 o/ Y) p1 S3 ~ M0 X
5 D2 E0 p3 O- @7 O Buf:=str_to_obj(sprint("BF",@._From));
" R9 x/ ~. T* S& {8 h' U @.move(Buf);
5 h' f! U2 h( ^end; |