这个例子昨天正好看了,话说那本书的例子都很不错~
_) o+ s8 N m3 J# v% I7 ^不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
6 w, s' g8 C+ D5 k* D2 J$ sis
' O6 s" ]( M- O" G. q. w i,no,m:integer; --定义整型- b `+ z+ q+ h' o3 R0 ~7 |+ }' r, H3 r
Buf:object; --定义object4 g$ A, ^% v7 J( G, }6 h: c5 D/ w
do6 \+ f, l; I1 S* F! \2 v3 @
m:=0;
, `/ m, A& ?. Y' z! n no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
, O0 S5 U2 j* \, C8 \6 ?/ L/ F. B* ? for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行% K- b2 c# }3 N3 }3 L& x/ d
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
; B' G+ ?* u9 d0 w @._From:=PartsTable[5,i]; & Y( i) P9 I, S: L: i8 r+ e
@._To:=PartsTable[6,i];
& ]: t" `7 F- s9 a9 n: X if no=PartsNo+PartsTable[2,i] then 2 F# Z2 k% ~" X) ^* v' q
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
; l! I, P+ P1 z0 d0 P( x' {
" s- y, `/ A! k4 K: e end;
3 ~8 c8 W4 I* [5 C: y7 i9 I, H) T i:=PartsTable.YDim+1;$ d/ _+ \0 F! Y; l/ X
end;* a0 Z% @* [7 ~; p5 f! i3 z
m:=m+PartsTable[2,i];' j; H8 T' F2 w- |2 I
next;
+ g* V& p' t# ]1 u2 X: d ) j& |" M X3 V' {
Buf:=str_to_obj(sprint("BF",@._From));
$ O$ P3 I) e2 q& P4 R1 G @.move(Buf);, R+ [: D. j" J
end; |