这个例子昨天正好看了,话说那本书的例子都很不错~' _7 p1 S% O% f) k& m4 x/ D
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。1 A7 o6 }" i/ `6 c
is
% U1 L8 m* P( `& L; E+ C) D6 Z8 E i,no,m:integer; --定义整型8 u& S4 K8 x: w/ r5 N2 p; D
Buf:object; --定义object
2 V6 D8 A" Q! ^1 gdo2 B0 [, l" D- X7 o
m:=0;
" t7 \1 N3 e: q% i* v no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
2 }/ t4 J1 p) y k2 e2 K for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
$ S" D& d' c/ I' S. `2 J' i, Y if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
7 t U+ W8 p+ E8 O: u/ Z: g @._From:=PartsTable[5,i]; & t$ e, }& g& M/ y% r, e) h
@._To:=PartsTable[6,i];7 x3 P- M( X- p- w; `
if no=PartsNo+PartsTable[2,i] then * W& @2 h [! o3 r
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
- \0 W8 P3 g" j( \8 e8 t- j5 |$ s/ J; L. s" {. O6 t' u
end;
+ q/ k+ }* ~6 P& u" P0 |* P i:=PartsTable.YDim+1;; k5 { D1 x- V* ]0 {
end;5 d/ c" g x5 E3 j, C4 n
m:=m+PartsTable[2,i];: u& X5 i1 \; x' I6 H1 A+ C& V/ Z U6 W
next;
. A+ F, i; G! J K9 o- A. [ / a2 x, J' h5 b# X }" M4 d% ^
Buf:=str_to_obj(sprint("BF",@._From));
3 z. ]# g# q* R9 d; } @.move(Buf);
: N `; x1 ]$ F8 \end; |