这个例子昨天正好看了,话说那本书的例子都很不错~3 C$ e! b" }2 q' o4 S
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
+ q$ R; @: v. l+ @5 i3 Kis0 h# f+ Z8 c4 I' Q! R
i,no,m:integer; --定义整型" N) c: h! l; s* ]) W' h' d
Buf:object; --定义object5 X4 A* N+ K5 v4 G r- n, Z
do
7 J1 w; o$ u/ K0 y& A# A m:=0;
. M1 I. J0 S2 v9 l no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
6 b. I( E' Y J; y" Y for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
2 a; E, {/ T, M4 j2 A$ o' | if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
7 w6 X; V, R$ c" I* N- K* F5 Z @._From:=PartsTable[5,i];
8 L% c- i' ^9 `6 P) N. o b% h @._To:=PartsTable[6,i]; F! R. `, H, D$ m
if no=PartsNo+PartsTable[2,i] then : P! G# h1 I& a. a7 @( T2 K
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)" Y% x* L0 D$ {7 a0 P( {) q6 y
" o7 m R' S/ M2 N5 m7 s1 q
end;1 [5 ?. W! U0 g- j$ v
i:=PartsTable.YDim+1;
: y" p) F$ x$ Y7 r- z. _( y end;
3 N& S3 C3 a2 l# l' H# d/ Y m:=m+PartsTable[2,i];* g7 h: Q$ E* ~- W- z
next;
5 U3 ^ M. H6 G9 ?9 a4 t4 ^2 l , p6 h4 E' @# o" j+ n, P6 R
Buf:=str_to_obj(sprint("BF",@._From));
. a" _9 j3 G' Q- R, A8 Z- | @.move(Buf);
' {$ I, S- M1 z& |5 X2 tend; |