这个例子昨天正好看了,话说那本书的例子都很不错~
. P4 x; S3 x" I8 [4 a. A3 F不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
. [7 s, z; ]/ z, J4 y+ V) [is
4 ]! H) d8 |$ U$ o. g6 M i,no,m:integer; --定义整型6 ~! l, T8 |3 g2 s, g. S( c9 G. q4 t
Buf:object; --定义object
4 s' A3 E7 f/ s9 ]' R: e0 l. ]do
; g- R0 ]; P5 [' g. i) z- Q1 ?5 W m:=0;+ s& f2 R) R! H4 A" n/ q% }* t& {
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)3 \& e1 s9 [% c4 O% a1 m
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
- K6 w! G5 B* {3 o' X4 G if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 6 h2 T# p- i. O" |) ?: I: p. l/ |1 y" O
@._From:=PartsTable[5,i]; & g o; H% b7 u
@._To:=PartsTable[6,i];6 E7 ?5 Z7 B$ x, k
if no=PartsNo+PartsTable[2,i] then
8 J! S( v' c; S$ t) [( p+ [ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)4 Z+ g/ q' k3 a/ f" @9 Y; | i
- I4 S! d' Z) U1 M( b* {/ I7 u
end;
* l! U% e5 U N* u+ l8 ~9 D4 h i:=PartsTable.YDim+1;
6 z' A/ R# x: p7 D# a. M% G end;
" S- ? u( s, j) G" X$ Q- } m:=m+PartsTable[2,i];, b( K" D) z- Q1 Z( L6 Y; Z$ d
next;! R7 q; |4 P4 A, o$ f# N
6 H4 \4 V3 J" S$ t' v! g Buf:=str_to_obj(sprint("BF",@._From));$ q6 f' ^3 R" a+ N
@.move(Buf);" Q7 G& S4 Q( {1 A& ?: e
end; |