这个例子昨天正好看了,话说那本书的例子都很不错~
- @5 K' Y% i8 [4 \6 S% ?不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
# W# J3 e! R/ e8 `) g; i( Zis" ]2 R5 K# }* Q1 N3 F2 R# P
i,no,m:integer; --定义整型0 D1 V+ w& F' h9 |( Z, e
Buf:object; --定义object, u9 C% ^1 ?' \1 c/ Q d7 ?
do& I# y p8 v* ]# W# l3 C% b
m:=0;
! ?. p2 t) @4 n1 u no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)8 Y, d" o& A# i5 z
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行- }& M* Z4 P# |# k3 K
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then : Z# H+ Y- t* z- u; C0 `
@._From:=PartsTable[5,i]; 1 |: H% A. f7 {7 C; z* z
@._To:=PartsTable[6,i];
; n# j$ ~/ J5 f* G' ~ if no=PartsNo+PartsTable[2,i] then
/ J2 C' Q9 y- ^ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)9 `6 c* O; ~7 w4 e& B6 n" P. H
- l8 i% d/ f; d end; E! ^9 X/ r" _
i:=PartsTable.YDim+1;
+ n6 t$ n6 A7 r! C; M$ p" _ end;
! `) ^/ H2 f* h/ \ m:=m+PartsTable[2,i];: p" C$ E( U/ m. k
next;2 Z3 b( B, j9 D- `! J
. I3 H, @/ ^/ ?) }( H. X+ y Buf:=str_to_obj(sprint("BF",@._From));
0 K' g' W- c+ N: l3 L @.move(Buf);. {; K, N6 f% L- l e( {- U
end; |