这个例子昨天正好看了,话说那本书的例子都很不错~
) k/ o1 `3 h4 A! B# h8 C不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
, \2 t4 \5 h) z1 w8 w. }+ X1 h" M6 z' Mis
# T9 v- G6 N/ u k# d% d i,no,m:integer; --定义整型
Z o1 u, _0 ~! D, K7 Q2 v2 k' U Buf:object; --定义object- A, }0 K# j: ?1 _: B: T; F& R$ Q# Z
do
; K4 S5 ]- C' q3 H/ \% i m:=0;7 q& J* L% U# P* L' \8 E
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
* G2 J) b. ^; y2 z- ^" O for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
6 J/ U8 ^& H0 |) s( { if PartsNo=m and no<=PartsNo+PartsTable[2,i] then $ x$ d3 ~3 x' ?
@._From:=PartsTable[5,i];
5 G! V/ y, I# T; H2 Z! k; t' L @._To:=PartsTable[6,i];0 q5 L/ S4 B; d( T5 m0 z: n1 j1 m
if no=PartsNo+PartsTable[2,i] then , r6 Z, n/ }1 Q) U% \; t. ~& \
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
4 q. H( }8 t9 j/ g9 K3 n3 Q2 [# ^
+ K% c% S- N! N: c end;% d) T/ U2 F- ~9 o2 s0 c
i:=PartsTable.YDim+1;
9 c; `. d- L" F" p: W- J, C end;! L L, @9 |, d) u) _8 |) s- q3 Z
m:=m+PartsTable[2,i];
! X( r! d& S$ t' V next;
- ~$ x: ` g L2 B ( L- N9 Z( s4 c d
Buf:=str_to_obj(sprint("BF",@._From));
! G# p3 k8 }1 v+ a @.move(Buf);4 [( k1 }! Z8 _/ k( a( D( l
end; |