这个例子昨天正好看了,话说那本书的例子都很不错~
* n6 O( F+ j7 p9 c不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。" Z! h- f) t7 j) {% B3 G, q
is
; \0 x' w' ]( U8 j i,no,m:integer; --定义整型) V& f! _; {( x, G* i/ @
Buf:object; --定义object1 Y) P* a* p& [# f) u/ R9 x
do1 k; y& h2 G+ U1 n; F# p# L) J% X
m:=0;
0 n8 B0 v0 y) ?! r no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)4 r# G7 i+ j$ c" y
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
7 t/ X$ {% E4 j& [+ }+ u, o if PartsNo=m and no<=PartsNo+PartsTable[2,i] then & J& {) J: s9 u. G4 ~& Z: T, ?
@._From:=PartsTable[5,i]; : D) H2 S3 M( m0 `" }; q
@._To:=PartsTable[6,i];
4 o, p. k- |' X) C) T, x; T if no=PartsNo+PartsTable[2,i] then # W; e3 q% X6 U u) r/ n% i
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
# |: E s. G, ^- L, O% U& U
" h G9 E7 X/ d0 z7 H; r end;
- b, K' c' [: _# c i:=PartsTable.YDim+1;$ a. F$ |" k' M" {0 s
end;8 w; w, ~+ q1 \$ C- h) p7 ~/ n
m:=m+PartsTable[2,i];
+ D' ?8 ^. I6 F9 C& q [9 J) s0 _ next;
, y8 w7 p3 R! }9 G) }0 g# E( {& n0 X $ i7 t! l. y8 I ]
Buf:=str_to_obj(sprint("BF",@._From));
+ f6 Y! }# f0 n! A& ~ @.move(Buf);
# `9 @* y# w7 S* o8 Aend; |