这个例子昨天正好看了,话说那本书的例子都很不错~9 J1 Y9 O) W! t. Z% G" l6 q0 t
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
3 \: N4 M+ ~% t0 sis' u7 N8 p7 `4 O( {4 q
i,no,m:integer; --定义整型
" Z9 f9 s) |9 q6 U/ m/ y Buf:object; --定义object
! m5 i6 B: b5 [2 F+ P, hdo
z' G+ k- X* Y; q7 `4 U m:=0;
4 F* y% W0 c6 z% M! H no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
: Y* {2 c7 p6 t7 V6 X- u! c for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行, x/ A$ W- _) _; N& V, Y
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
( [" o6 R& q% i" |; c7 d2 D1 C @._From:=PartsTable[5,i];
! V- w) n7 J8 Z: z Y @._To:=PartsTable[6,i];
: J, ]: N$ @8 \# o* W8 y( `" c if no=PartsNo+PartsTable[2,i] then
& L6 l) v k; N* r PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
: q0 |4 o0 L" J& o9 h& _, o: @+ _% f+ V9 X) u8 O5 M$ C
end;
+ U; I* s! N" {# d/ N) P5 v i:=PartsTable.YDim+1;2 ]: c# h/ z4 D( T/ o
end; p' j5 E4 H/ M, G
m:=m+PartsTable[2,i];
) g3 Z7 z7 O7 \4 ~& g: G# U8 E4 J next;$ D" T$ J4 Y' N3 L
2 ?2 ~1 {5 q0 M6 ] Buf:=str_to_obj(sprint("BF",@._From));) j. P% ?/ B! H5 P6 ` |# C
@.move(Buf);) c% \, ~7 b- @0 j( k3 L! j6 }7 \
end; |