这个例子昨天正好看了,话说那本书的例子都很不错~8 b) M# p7 g2 l
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
5 k& C7 u# R% p* X! v1 s1 P% f# C1 cis
0 [# @: l% S+ Q0 s4 [ i,no,m:integer; --定义整型
& l, I# {. l% a" N n Buf:object; --定义object+ \# Z6 Y9 V- G6 Z
do ~) C, E2 ]% i, A9 V- N1 q
m:=0;
0 U" w! Z+ a" V$ d# E no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)* B. f2 ~3 Q) w( x) Q
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
0 m/ R+ D g4 P$ S; @9 D! M5 V. M if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ! K) X! O+ |( K7 f
@._From:=PartsTable[5,i]; * n7 D# z! c- E9 t4 h+ I
@._To:=PartsTable[6,i];' D3 t( @: k1 d, B2 C) ~( O" Y1 W3 ^4 _
if no=PartsNo+PartsTable[2,i] then
; c, ]1 Q3 x2 z( z PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)5 b+ q7 ?5 ^9 r8 S
. p7 ]' C, u# U
end;
h/ L( w( t% e: V. i( h i:=PartsTable.YDim+1;
" m5 K" _$ Y6 T3 U end;
8 N# m5 f- O3 h X m:=m+PartsTable[2,i];
- [" W# p4 O: i# f; k4 Q: h next;
7 i) g2 h( k- s ! u# s. I3 M. l4 Y9 t0 B; B
Buf:=str_to_obj(sprint("BF",@._From));
2 O4 e8 j% I( D7 N, h f @.move(Buf);" O. L! V) |: z% N+ T5 }9 K1 z
end; |