这个例子昨天正好看了,话说那本书的例子都很不错~
[: K5 i) |/ j1 u# P0 o. {不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
+ H8 k& o& x0 J& K" N' s( g( ?is: O! n6 p( A1 C, m6 A/ [' p
i,no,m:integer; --定义整型
# ]! B( q; B. ^& ?5 w ] Buf:object; --定义object8 O) V) T, Y$ K) C8 j, g. o0 e8 a
do7 C4 f/ u0 A8 L$ ~% E7 c: f
m:=0;6 a. ^+ I! j4 _( M" D( R
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
) {. q, j; i! A for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行( ?! u2 n: `* E( n/ B
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then * [3 w& i4 b7 q D
@._From:=PartsTable[5,i];
" Z3 {! |; I( ^ @._To:=PartsTable[6,i];
* n! ?/ J" U$ L* u% J' t* n if no=PartsNo+PartsTable[2,i] then
4 @! v' k8 @5 p+ t' v( a PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)5 s) |# |) U3 l: O
z; e( n. X. P$ @8 w8 ~1 }
end;
, G9 v8 M4 [6 ~4 T i:=PartsTable.YDim+1;
) I8 [# K, n" \4 X end;
% A( F1 S3 S5 \7 K Y& p9 c7 t! P m:=m+PartsTable[2,i];* G1 F6 g* t" z( w( B
next;- ^8 t; Z0 z+ Y1 M3 m \
% A5 j' ^/ j( T) \9 `/ Q
Buf:=str_to_obj(sprint("BF",@._From));9 o% r( T# I; l3 ]3 t% g5 ^
@.move(Buf);
. ^) ^/ [: n' I. o2 |end; |