这个例子昨天正好看了,话说那本书的例子都很不错~
. h3 \# F8 c8 T7 |1 K( V5 a8 I; l不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。 K% Y- f+ a$ `6 r8 D: ]& Y
is
/ F. }1 f, q. b' ?" f2 f i,no,m:integer; --定义整型
I( J4 a/ y3 h k' V# x: q- _3 B Buf:object; --定义object
* E" \5 m$ g: M' M; jdo3 ]! N, V) T, m: g z' @- Z
m:=0;
; c2 ]8 d o# [6 ^2 O no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)1 l1 Z* l, w: @3 @* I
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
+ a# s, E' z* x9 X if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
- U% O) m: ~5 j5 O0 ^$ l @._From:=PartsTable[5,i];
- S4 R( j, c3 D. `% U T. h" h/ i @._To:=PartsTable[6,i];
# n4 R1 p- b/ V6 x0 f( d if no=PartsNo+PartsTable[2,i] then
2 G+ A8 D; G5 G7 v PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
0 v0 P' T3 m4 F! ^+ z: T5 H! W$ s% K3 X- H
end;
! H0 X$ \/ g! ? i:=PartsTable.YDim+1;
: }6 i8 w2 ? p" @' m end;3 d; W' o4 Q, ?" O7 N- S
m:=m+PartsTable[2,i];
! g9 U4 o- m. U, z next;
5 m% F2 Z, Y9 T! H3 B* ]9 F" w ; E1 M4 L6 H1 e# E0 ~) v! u0 ]
Buf:=str_to_obj(sprint("BF",@._From));: q: l# H0 V( v% x* _
@.move(Buf);- Y# l8 F! n" ?4 e' Q2 @9 v0 N
end; |