这个例子昨天正好看了,话说那本书的例子都很不错~
4 ?$ s0 j+ S) ^, v9 o# {# l不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。3 e' t- U" W3 Y: a
is# N: L& U. V* n
i,no,m:integer; --定义整型
p* ], X: G4 e m$ |. X& R$ R6 ~3 Z Buf:object; --定义object* J0 g! b* e! S* r5 N
do5 J H. B6 O% J2 C
m:=0;# q& d0 P' s5 n! v* ]. L
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外). m& ~" {( {9 C7 U- D
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
/ u: p0 j& }' K5 { if PartsNo=m and no<=PartsNo+PartsTable[2,i] then + ?# k# s% S% N, O* B7 N5 Y0 i
@._From:=PartsTable[5,i]; ?& S4 s6 H' U3 [7 B6 M% F3 @
@._To:=PartsTable[6,i];3 J2 ~6 o3 M7 {. K8 R, S: e
if no=PartsNo+PartsTable[2,i] then
* {& k9 Z1 l) p7 l8 r& ^ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去) ^$ V& J$ _6 I4 X, Q# X; @
, E! j# |3 l7 X2 T: Q L
end;
7 `; C; p; }# {5 v- Q: B- F: C# N i:=PartsTable.YDim+1;
8 _+ k) ?9 ]5 I7 [/ r end;
$ K" V9 q: g; F7 L! x( D2 J8 a! P; ~ m:=m+PartsTable[2,i];" m, S/ ?; X7 |2 \
next;
$ c$ p/ x. k: D7 R) Z, A0 Q
; I8 C: L d( c Q# C; U Buf:=str_to_obj(sprint("BF",@._From));
* D f v0 a2 c, p! @9 C @.move(Buf);1 v$ A5 g8 F! c6 O/ t, k
end; |