这个例子昨天正好看了,话说那本书的例子都很不错~
+ f8 Y4 V) P; s& C$ Q' I8 S不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。 v- n9 T+ O" R/ T; D7 a; ^8 }
is
+ f, _& l o$ t i,no,m:integer; --定义整型3 R; m5 l1 ?0 c- z5 _7 A
Buf:object; --定义object6 z( `4 ]) G# f5 S
do. H( I7 p, k9 B
m:=0;
$ i: [+ y5 t2 |1 _+ W; | no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
/ [2 H& d9 r5 ^3 |* E* Q* ~+ h* S4 N for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行) {" H# X7 z; S* P& u$ R" L
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then " ^, C% x% H. F% t) p% M/ M- y
@._From:=PartsTable[5,i];
) _/ W; r6 V# e4 m2 | @._To:=PartsTable[6,i];% I4 o1 D; w! F) d- |9 s( V
if no=PartsNo+PartsTable[2,i] then
! C# W6 y, N; a- b2 ^& U PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)2 d% I9 W1 D8 S3 J' }+ Z
8 m. y5 M, O8 N3 C, t' E end;
/ R; h* H8 ~7 T6 D) C i:=PartsTable.YDim+1;( F* R% Q) B4 }" L4 {
end;$ U# N- Z9 a" N
m:=m+PartsTable[2,i];+ z4 h& {" w9 S2 e% x2 m
next; x X$ M/ L; \" Z, N$ i7 z1 X
1 ?8 x, ?3 B* y
Buf:=str_to_obj(sprint("BF",@._From));- U1 E* U* {$ b/ W' J3 f6 p5 G9 E
@.move(Buf);: Y c* }' R' f' u
end; |