这个例子昨天正好看了,话说那本书的例子都很不错~5 G2 k7 C9 ^5 P8 h
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
h# a9 Q0 d9 @+ F0 E) ` wis
# u7 U! `7 c) {1 T i,no,m:integer; --定义整型
! V3 a! R! j% r8 r5 L Buf:object; --定义object
( V" M" c1 O! c; rdo' Z) F4 B# {3 e' l* j
m:=0;5 M8 J$ F9 F5 h5 F# Q/ n7 V1 I
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)4 C# H6 I. s# I7 j
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行& M, t) a% y3 v) C5 N
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
5 T( ^ V9 c& r! ^) F/ H @._From:=PartsTable[5,i]; $ i" _) x3 G1 E+ p8 V5 E
@._To:=PartsTable[6,i];6 K0 R2 ~) _4 S% k6 ]! D4 R9 u
if no=PartsNo+PartsTable[2,i] then ; N) S2 ~2 ~) J' p4 F3 O8 Y$ @
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
: {; e% {! C8 d4 Y# s# n" ?$ Z. Z% z% T$ S9 y
end;% u7 k. D/ d9 z, k [' B
i:=PartsTable.YDim+1;" n$ x! H; d0 P- o. x* s
end;
0 g8 M) W: n, p% s/ i m:=m+PartsTable[2,i];$ k+ u) o1 [3 T( C7 B$ n: ^
next;% F4 j( e V2 y- o M
# b7 N( d. K$ y8 \% N Buf:=str_to_obj(sprint("BF",@._From));$ z5 |; L0 G, {# V, ^& E5 C: Q
@.move(Buf);
& l4 `3 q! E% t j+ V8 ^$ b+ r% x0 C0 |end; |