这个例子昨天正好看了,话说那本书的例子都很不错~
9 C. d: P9 h4 G& w+ i( u( P3 P不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。" v+ l+ Y# \, m. e' Y
is* e- ~$ t s' _$ U5 a# y
i,no,m:integer; --定义整型- ]# n! s2 `. F5 u- u1 d2 H* {8 Q9 b
Buf:object; --定义object
7 U# D4 T9 F( _( qdo
7 F& ]2 b" R0 t \ m:=0;
1 E" }. W; Z( N% j9 o: q no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
9 n; I% j# l9 Z for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行; ?! i5 `9 r& P! c3 ]
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
4 J/ a) n* \4 B1 e3 @7 K @._From:=PartsTable[5,i];
$ j, h$ [. G+ N+ p3 Z) ]; p( C @._To:=PartsTable[6,i];
" g4 l& v# ~2 C8 i+ U if no=PartsNo+PartsTable[2,i] then 8 J( ~1 H( W& G( V
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
3 D7 J! O+ P2 J2 F% O" f q, d9 x* r& z- S2 L" @
end;
4 }; \1 `) t, X4 e* H7 c! W i:=PartsTable.YDim+1;7 a' S2 p0 s- x' g1 c8 q& {0 x* | F
end;2 A" `7 k% \3 S; U: e
m:=m+PartsTable[2,i];3 m+ B0 F. Y. l1 h) g" i" }* w
next;* t0 g. E2 l+ p. p4 z& _
7 U Y$ Z2 N+ x8 g& b Buf:=str_to_obj(sprint("BF",@._From));$ X8 P) m, v3 U* x1 o
@.move(Buf);* q: ]+ ^0 ~+ R2 s6 ~: j
end; |