这个例子昨天正好看了,话说那本书的例子都很不错~
( m @# L5 {/ P( ]不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
6 ]9 D$ R, v6 z! O" q% Fis* B$ `6 u( T2 r
i,no,m:integer; --定义整型
+ s& {$ o1 [) [$ c Buf:object; --定义object# ?; k- B) `* l
do
1 |% r1 P% ~6 H m:=0;9 H. `# K3 r+ {2 e# T1 a7 g" t
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
& S+ [% V8 Q) i6 } J$ y for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
( q, u* ~* Y m/ J* B if PartsNo=m and no<=PartsNo+PartsTable[2,i] then + V) D3 {: {6 e" K* r8 L
@._From:=PartsTable[5,i]; 0 S( e- G {: L- Q( ?: O5 m8 b0 \
@._To:=PartsTable[6,i];1 [" A* X! s0 r' D: }1 u6 U4 Q
if no=PartsNo+PartsTable[2,i] then " @1 Q$ s, K% s7 b
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
. x4 r! E9 F. I8 c7 M$ m+ D1 m7 O+ f( G3 v$ D
end;
0 ?0 ?- ~, A% s i:=PartsTable.YDim+1;
) {# i3 S4 O) R4 R% i4 b end;
9 n7 X! z+ W# n' ?% x$ d/ Y m:=m+PartsTable[2,i];6 t' J! t+ w$ J8 F8 ~0 X
next;/ L6 q7 m* F3 {# j- g4 t
& P( C1 F# } _& J3 W) J& I Buf:=str_to_obj(sprint("BF",@._From));4 k& e/ ^: k6 h, n) W, f6 M
@.move(Buf);) R6 e. F" ~1 w
end; |