这个例子昨天正好看了,话说那本书的例子都很不错~
- N3 l2 l8 C/ p, z" V( |2 G* i不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
) X; O1 V8 o1 S$ p. Bis- q- ]) ?5 \% L6 H- ?" p/ p/ T
i,no,m:integer; --定义整型
$ f; t! o" w1 X% K) P& `8 F Buf:object; --定义object
9 A. |6 i5 P2 u J) J) kdo9 C3 O, x" h9 q/ x) W! E' }- f
m:=0;% O7 L2 L0 A& ], r
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)* j2 g+ D0 ]+ A6 D( s7 H
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行' T5 Z: g& [* u( U' z! Q& {3 s
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
# {& R/ ?5 {/ I0 @- H' M& z @._From:=PartsTable[5,i]; 1 p2 _/ j5 h2 J( e$ j7 {% u5 u. q
@._To:=PartsTable[6,i];
+ s) i4 G, Q1 u! h4 C. B) F if no=PartsNo+PartsTable[2,i] then
3 C! X; Q7 }* v' y! u PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
8 \ n! o% q5 _8 P" e
5 }6 }1 S% e. y) M% E5 }/ [ end;( u, y$ D2 w; @/ Y2 s
i:=PartsTable.YDim+1;' ?! j- o! N6 }' u
end;' S0 E0 B; b8 v: z' a4 I1 K: Q
m:=m+PartsTable[2,i]; v7 \! O& _3 U, ^* G$ P
next;
+ x. R' c1 ?+ _
5 p$ i- [1 K# `! q7 i8 B5 { Buf:=str_to_obj(sprint("BF",@._From));
* u" g5 n" i) Z5 Y2 U @.move(Buf);
[) w# H' A6 ^" L# {, L6 Cend; |