这个例子昨天正好看了,话说那本书的例子都很不错~" U) r) ?$ M8 ]% j( q6 T
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。0 l9 U8 }5 {. [1 U
is9 B8 A4 M* h2 }. ]7 n% J/ ]0 g) O
i,no,m:integer; --定义整型( Q: k, s1 G2 i; ~) |3 W' o
Buf:object; --定义object% \2 s6 s0 r$ w
do
1 _; U* a; ]+ {4 _9 M# M m:=0;
& @0 E4 X8 }# }$ ~2 I; i7 D no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
$ m! J0 m# o& S1 V! a6 k4 K4 Q for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行2 n- f) X# j( r/ f) { c
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
( W5 c' k& y! M4 _+ J @._From:=PartsTable[5,i];
9 F! X5 C# ]- m# Q$ L8 f& \ @._To:=PartsTable[6,i];
* O1 T) n7 _9 J5 M# A if no=PartsNo+PartsTable[2,i] then + X8 [5 f$ K' _' p$ Z/ f* I
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)' ^, x6 E* }8 P+ v3 r; Q% z6 y
0 W# i$ m! r n% f) ]. S
end;+ h- k1 A, {+ e) U, O
i:=PartsTable.YDim+1;+ V0 p/ ^% b$ H+ D- A
end;
4 g( C5 @. D- J# ~7 P m:=m+PartsTable[2,i];* q* m4 _! a' g' K, {& I) V
next;0 Y$ G/ N0 C+ [" G- f/ b5 M
, j& `8 S+ E( @% X Buf:=str_to_obj(sprint("BF",@._From));
0 C0 r: l% H% _, z5 b4 I( B3 {. p @.move(Buf);
0 X9 ~( M: S8 w' uend; |