这个例子昨天正好看了,话说那本书的例子都很不错~" a6 j/ m: X6 E x3 _* P
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
1 f0 x/ Y: t% k+ x4 Pis* V$ b- r( a( L+ z8 U" {
i,no,m:integer; --定义整型# N5 _, c$ E% a* f% t5 i; _
Buf:object; --定义object
# ]% x Q& x+ i$ V# gdo& V6 w& k! T0 z* y( M
m:=0;
% f1 j$ o; @2 m# R6 V/ e/ i" G no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)( E) g/ K: i! j; T, X$ p s
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行$ d5 _7 w) ]/ @( ~
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 0 U$ Q, n6 H6 X' |+ m( r' G$ u
@._From:=PartsTable[5,i]; 1 E4 t. g' _# p' U) u+ X
@._To:=PartsTable[6,i];
$ f. i& H$ p. E+ W% S5 J+ h. m if no=PartsNo+PartsTable[2,i] then
/ o) P) u9 V& f. `8 p; x PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去): g7 a7 I* n0 F0 y
& d) e' W/ m4 n& n. x+ y
end;
$ b$ `, l, i9 ^& N/ _ S# J i:=PartsTable.YDim+1;4 [& }' O3 u+ b% q
end;4 b" Q% t8 d& B' q6 u" Q
m:=m+PartsTable[2,i];: w7 d3 m. J% R j0 @5 b, \& C
next;. A+ ]3 Q. k% d7 ~, w6 j" ^! F7 |4 b
4 p3 j+ a* j v) }5 _; |
Buf:=str_to_obj(sprint("BF",@._From));
9 U% A) E1 B' E. w* _ @.move(Buf);
0 L9 n/ }" Z& P* yend; |