这个例子昨天正好看了,话说那本书的例子都很不错~$ V d" \6 j" p% B
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。' a9 g/ f* Q w: y3 c# Y6 s1 }
is2 b# y2 X- V( i3 x( f& v) W/ @* V
i,no,m:integer; --定义整型# ]0 `, W d* K* C
Buf:object; --定义object% T5 N2 G7 {1 f, w) B! j! B
do
- L$ y4 ?, N" t8 Z0 M, C0 l m:=0;" V7 k' z a+ G4 T6 L
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
4 t4 i+ ?1 Q6 z for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
) {6 J7 `! I) b# i# Q, ]+ V if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ; v# ?8 M# i$ Z) b& C D
@._From:=PartsTable[5,i]; 6 X( A4 i& \7 ?- ?$ a. {
@._To:=PartsTable[6,i];
$ o$ \* h& f2 j$ Z9 {- [' ] if no=PartsNo+PartsTable[2,i] then
9 _+ o: {' L3 p! \; K PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去): a9 s* H3 R* T: G) v7 s6 O
$ v2 ^! Q3 D7 k& j! g, \, h end;
$ n+ N+ E7 Q/ Z: y9 k& | i:=PartsTable.YDim+1;( C3 @: j5 k7 d8 e
end;
: `& v4 C3 E# T, Y3 L m:=m+PartsTable[2,i];
2 e. C+ j6 c$ n5 B( ` next;# W* G- m9 z, G
/ i# l0 f) H- i @7 ?$ X Buf:=str_to_obj(sprint("BF",@._From));
: q% T4 \, W$ e; h8 `% W @.move(Buf);4 o8 u/ ]) M. q. I* a6 l! [
end; |