这个例子昨天正好看了,话说那本书的例子都很不错~6 G* s. o K! {8 [' g; f
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
5 @& W4 c! e; m. j+ ris/ U$ A! Z6 ?* q! G5 L# A& ^
i,no,m:integer; --定义整型2 I- s2 z' ~3 u2 Z
Buf:object; --定义object- k2 j) r% G y8 G9 L
do
% g: {1 Z# N8 a% v1 s m:=0;0 b, I8 A3 Q l+ e7 R2 E
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)" _ a% \1 ?( X9 }1 Y% E8 n
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行& F% q( t% S$ h6 S
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 3 o1 [& a' y% g- G: @' W. U3 a
@._From:=PartsTable[5,i]; : I$ R' b. V2 O
@._To:=PartsTable[6,i];& c; Y( Y, N2 O- |1 s N
if no=PartsNo+PartsTable[2,i] then # y5 f8 V( s/ t
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去). T* {7 t- c/ m E1 Z' I
# {4 j) @, E( ^ n: @ end;
+ q% Z9 [% _2 S9 T4 D+ s i:=PartsTable.YDim+1;
8 x6 l5 `, l/ O- |0 u% B$ |: _# H9 @ end;5 s7 T! v' b, U+ J h9 \% C
m:=m+PartsTable[2,i];9 z& c9 p; k) K- s
next;
+ {5 z5 I1 P. k) o. S4 }; U( H
! |) G# r6 y4 L7 Y* g Buf:=str_to_obj(sprint("BF",@._From));2 X, n6 |% G \+ E* t& B
@.move(Buf);
: T3 I, o5 F# E. M2 Eend; |