这个例子昨天正好看了,话说那本书的例子都很不错~
* Z) C8 |0 Q k8 k& x2 t8 _# T不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。+ ^$ G7 n/ p. |1 Y1 _/ x! y5 A0 i
is
. [9 K& Z& \' f. D+ p5 `! ? i,no,m:integer; --定义整型6 O3 t( Y' v/ r4 g! E$ J4 ^; ~: C
Buf:object; --定义object# N1 M( _2 r+ L) P- i8 R# S
do- U; ]. W5 [) j# y0 C& z
m:=0;; A5 c: F" I0 x* b3 b1 j$ |3 x
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
( g! b2 u) U1 M1 b4 r# n. d for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行8 Y& ?. y, U0 {: U+ }+ | r
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
3 q: e F9 i n" g1 _7 g: H @._From:=PartsTable[5,i]; 5 w8 t2 T2 B9 u- C# |
@._To:=PartsTable[6,i];: ?% ], k7 V) V
if no=PartsNo+PartsTable[2,i] then " r+ g- F. D$ p& S0 G
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
/ P, f: i; u* ? L8 j) A0 }: R! ?2 K. H8 z" z V! W# r6 S) S
end;5 s: }% `4 C0 x1 ~# H* L
i:=PartsTable.YDim+1;4 l" T, a' U! X7 e' O
end;$ h- x, c" n W, G Q+ z0 f" ?
m:=m+PartsTable[2,i];
% V& o( U2 J6 B next;
! W# z+ C5 E( O
# }7 O# ]6 U: a) J Buf:=str_to_obj(sprint("BF",@._From));
3 x! o6 L9 `) f t G! G @.move(Buf);
9 o7 _* F) r2 D. G+ h* fend; |