这个例子昨天正好看了,话说那本书的例子都很不错~
: s0 L* r% r0 O- z不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
0 E+ c# |, \4 Jis: a7 K2 Q1 v( Z
i,no,m:integer; --定义整型1 X$ Q& U [( f3 ~+ o. P% H8 s, C
Buf:object; --定义object
5 m/ n+ o) `& i C& ] Y+ ydo) i, |9 A# t- I+ c
m:=0;
; s7 n3 o1 }3 F& ]+ W no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
* H# B; y' [/ Q# d! c+ q% l for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
$ Z) d* \ E( w! I- { if PartsNo=m and no<=PartsNo+PartsTable[2,i] then - R( G# R! x f. J
@._From:=PartsTable[5,i];
0 h5 l1 [9 b5 ?7 u: _ @._To:=PartsTable[6,i];
5 C" h8 k2 ?' F4 _- w0 u2 c7 f if no=PartsNo+PartsTable[2,i] then 1 X2 Z2 \2 G: j
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
. O6 H- S" w6 G+ {( w s$ i _1 R, M* x. F8 D4 m
end;
9 s5 @3 m6 L7 J i$ z i:=PartsTable.YDim+1;
: r- f: o3 G" e! o end;6 D; ?( @- c- y0 v% q
m:=m+PartsTable[2,i];
( u' j0 P+ H, N% E& z5 I$ r next;4 ?$ h3 r3 j, Q& y8 o/ Y P. i
& b( @% L2 \% j, a3 Q
Buf:=str_to_obj(sprint("BF",@._From));
( U! H' ~, I$ z* j8 Z& @ @.move(Buf);
# \3 v- |1 E/ G4 U1 _; v1 Y' O" @end; |