这个例子昨天正好看了,话说那本书的例子都很不错~
. C3 S9 n( q3 n不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
$ }/ B7 p' T c2 ]! Q* K! kis' N; U |, n3 L5 N ~# Z
i,no,m:integer; --定义整型8 `/ S; m# {; [) t5 n
Buf:object; --定义object7 C$ Y0 t7 m# Q' k: n4 s6 i1 E8 `
do
: W" a2 t/ O' k( v6 d m:=0;8 c# b. l. z6 T7 p; ^
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
% S; Z: C6 p# z8 h for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行$ q8 h) E( y- v8 \
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
?" r4 C3 i3 }6 N @._From:=PartsTable[5,i];
) C- a7 }6 H& Q0 | @._To:=PartsTable[6,i];
8 p: W+ i! V( q( N if no=PartsNo+PartsTable[2,i] then
7 ?# i1 [, H% B8 K5 M& } PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
5 i" B7 r; w! [# q! E: a" u7 C, ~
end;
/ g9 g9 X, h5 p: q. b) h, U4 o i:=PartsTable.YDim+1;. t$ A) D; `. w$ d5 O. A% b) n
end;
$ K# C2 Z2 C) Q4 }& n. K3 s m:=m+PartsTable[2,i];5 r4 G4 P7 O d$ V
next;
) l0 [" G$ y: z# R; @
* A/ t2 @+ M8 J+ f" M' X e Buf:=str_to_obj(sprint("BF",@._From));
@# B: b, J3 d2 r3 ^# Q, Q @.move(Buf);, v; C# J1 ?' ?1 m
end; |