这个例子昨天正好看了,话说那本书的例子都很不错~
& q" |6 m8 o# B$ x% i6 O3 ?不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
0 |3 N H0 G7 T( o; Wis( t7 u# w: o2 J1 Z3 L) x
i,no,m:integer; --定义整型# P3 b; A) \6 F" G9 h# J7 T
Buf:object; --定义object8 W/ M4 P* ]$ o' \) g
do9 Z" o0 ]6 W) K: W" a: j
m:=0;
* V# s5 J$ h F8 I, l2 c4 i6 o/ e no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
2 K" X1 L* b7 X5 F; x for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行4 s; X7 r2 `# B6 l
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
. L' P4 t4 q$ t, F7 c @._From:=PartsTable[5,i];
% H! b1 |8 b4 t3 i# S8 g$ Q( W @._To:=PartsTable[6,i];
6 ?% y0 E9 S1 T$ u if no=PartsNo+PartsTable[2,i] then ; B, w' o) g' \, ]: h) ~& T
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
' ]4 E3 h" U" s0 a: `7 i1 i2 N( H
end;
' ?6 f$ M3 [0 D' ?& X i:=PartsTable.YDim+1;
0 P* \4 u+ \) a, h. q) u: E end;; b/ E9 F, c: ^1 Z/ m* N
m:=m+PartsTable[2,i];- q1 b5 o; F3 l9 ^
next;
" T* m0 H6 r L. D, \/ B . D4 t" L5 d8 g
Buf:=str_to_obj(sprint("BF",@._From));
, \$ P5 b# g# X2 X @.move(Buf);
" N8 s J' e: W# S. Xend; |