这个例子昨天正好看了,话说那本书的例子都很不错~7 V( |, f1 r* P" g# ]9 x: c* X
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
' i9 {- x$ `. a! X& |' A4 qis
' _6 }. w+ @! h7 W, x9 x5 o& B* q i,no,m:integer; --定义整型
( @. P. n6 Z1 A: a9 ^8 j Buf:object; --定义object
+ z$ r/ e' M' k: P( w0 e) O3 q& q! xdo. r, a( _% M3 a; e
m:=0;7 a. T% J$ J. }% X: P5 [ y
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
- o5 F8 d% W) q' U# h for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行3 d0 J/ ?9 m z2 u) X6 H
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then # o1 [# M4 |* t' A! _
@._From:=PartsTable[5,i];
( d6 S# D/ S# F% j" s" F @._To:=PartsTable[6,i];
2 ~* F; q* H' |9 w ? if no=PartsNo+PartsTable[2,i] then - R }* j! x; P1 o: N# M0 Q
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去), g# q- Y% ]) a, ^( T2 l* D' W+ L
4 D- I, o u2 H( V1 ?, Q0 p end;
0 ^& Z6 N8 G; x( e1 L( F6 y4 M& Q! c i:=PartsTable.YDim+1;& S0 Y6 @- I' l/ W# a2 T
end;' C1 h: R# ~# G ]8 F
m:=m+PartsTable[2,i];
9 j* e* d) z( j next;& a" s8 A$ l/ Z6 v( `
4 k) o/ a2 A) h$ v
Buf:=str_to_obj(sprint("BF",@._From));
% h9 P) u7 x: g B' A8 ]8 J, g# F/ l @.move(Buf); O2 T; ^' c" [6 M. N
end; |