这个例子昨天正好看了,话说那本书的例子都很不错~
+ p3 D+ \& B3 ^6 e+ r不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。 f$ z+ ]# f5 O, r. h& [* L/ i
is
- y! N5 \! t+ w6 a i,no,m:integer; --定义整型
- ~( I; q. B0 v2 v; _! S$ p/ d* ^! h Buf:object; --定义object" I! M1 ]! {# e2 m
do7 s8 u) r3 A- `( K% o% w
m:=0;
! l# N" M* v& T! G; X9 Y! T$ \' }( a# U no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)2 `" z9 C3 f% |) i& E! V9 }
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
$ D- i: a( S. r1 g% A# |8 }7 U if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
( ]. B" [& P3 { @._From:=PartsTable[5,i]; ! Z- V( f/ n P% ? P
@._To:=PartsTable[6,i];
, q2 ` U) T6 W. F$ J' N" } if no=PartsNo+PartsTable[2,i] then ( F# W0 h8 [, u: r6 x
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去); _6 Z2 C2 |* u6 V4 |: |% y. s' b! o
$ g5 P7 W e H- s+ I
end;# r+ f2 w8 }2 l; T
i:=PartsTable.YDim+1;
4 B: X- }$ _2 A2 v9 v, S5 y end;
# \& ?) M6 Y8 D, Q& P# _$ c" ]4 n m:=m+PartsTable[2,i];
) M: j9 Y0 x6 A: I6 R% _ next;. ?3 f( v j* r# Y3 R4 T
1 r: b+ j0 s7 b( x2 g
Buf:=str_to_obj(sprint("BF",@._From));
. t2 a& e' a$ [7 M) y @.move(Buf);
& x+ Q9 `$ u2 {( H/ |end; |