这个例子昨天正好看了,话说那本书的例子都很不错~; C* D3 h1 A5 r7 @
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
7 F* @, @; z; a1 V9 Xis
2 a- h# N; Z, N7 u$ l# ^ i,no,m:integer; --定义整型, X' T7 N- b* f5 ~8 s0 [
Buf:object; --定义object5 d& ^, Z2 }# q: |5 x3 c: `! t
do
7 a3 W* \6 ]" I: ~( P( s- H m:=0;5 m: x8 T& `$ x
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
9 j: I5 G& Q9 u( E! R for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
1 U+ q! i# ^, c if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
, \- z& c9 r# z0 v/ Z @._From:=PartsTable[5,i];
. Y g3 r% i9 B2 C p& f ~ @._To:=PartsTable[6,i];
3 S$ {1 N+ w5 h/ \ if no=PartsNo+PartsTable[2,i] then , U; U" X* H" @% m
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)3 {+ l( ^0 ?) `) E* L6 c
. Q3 x6 N# L! W; f- D; D6 V end;
) A+ A3 s& l% x a5 L$ K0 G i:=PartsTable.YDim+1;- a% c) A: `; \8 S4 j; @ F0 K
end;
% s$ F" B L3 l5 H: n! l m:=m+PartsTable[2,i];
* i! T5 B1 n# r) {, v3 X) L next;
* X1 `9 e! U0 L. {3 Z 4 G' H& L" N3 k' T# U
Buf:=str_to_obj(sprint("BF",@._From));
) G5 A2 h M; D f) c% ~ @.move(Buf);9 u0 l! ~$ e) `; S: n. N
end; |