这个例子昨天正好看了,话说那本书的例子都很不错~/ T4 A5 k" V4 H1 m5 M+ Q* Y
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。/ p# C4 H2 x9 H, h
is
" L: g$ h+ m7 l) k# a( e; e% q i,no,m:integer; --定义整型+ l8 m' |+ b6 |9 b7 |
Buf:object; --定义object7 j- ]* D: t* [/ [1 n
do
; F2 ^" v/ N3 ~ m:=0;9 m+ L7 U/ u3 d2 V1 W5 ]2 k
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)2 F) k) d5 l' k, s# [ N% {+ a
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
6 Q, l# { C% K8 M' ^5 q, M if PartsNo=m and no<=PartsNo+PartsTable[2,i] then , C* F0 r7 j( T! o6 @
@._From:=PartsTable[5,i]; / H. T0 Y8 Y$ [ n b
@._To:=PartsTable[6,i];2 [; g3 Y. C; u" q$ s
if no=PartsNo+PartsTable[2,i] then % \ C4 Z, ]& e) j/ s
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
% N0 ?8 C: g2 _4 P! B" b% p# L( k' N0 a% Q4 [, V) N% I% w, z
end;
) t& v9 \7 ?2 i# ]: R& c$ [ i:=PartsTable.YDim+1;- { W. \" f+ e; E, ], P" N2 ~9 x
end;: G8 Z; c! ?3 T5 u& Z
m:=m+PartsTable[2,i];! S( K1 `5 h& n) a. X3 ?* T- w. x; ^
next;
. l1 b7 h' v& J" f1 b % p- @, o$ m6 D, ]; @, B; K
Buf:=str_to_obj(sprint("BF",@._From));
% B( Z! p: n5 d, s' t( [ @.move(Buf);+ B. K n; b' x! u/ b
end; |