这个例子昨天正好看了,话说那本书的例子都很不错~; M+ J$ O4 F! D% y6 {+ I' |
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
o4 Y: b$ w, S' [+ P) Iis; J! N, o$ c9 l5 A0 c
i,no,m:integer; --定义整型
1 e9 P; _7 O/ o7 h w9 _ Buf:object; --定义object
4 _! i8 h- x. j [4 ido
% P+ W- _) X) k3 h7 [5 b m:=0;
3 \. V' Q( \; ] no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
& D; w `' S6 _3 B/ z( F' f0 W for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行1 `' H5 _# V7 ?& N" X3 p
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
) k8 ~" ^: k7 l! q/ g" ?- g @._From:=PartsTable[5,i];
/ p: }$ ^# l: d- f8 E/ U/ b! C" ~ @._To:=PartsTable[6,i];, R$ _: l* Q* o' |
if no=PartsNo+PartsTable[2,i] then
( b# i! k7 k" p$ N PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)# G' d `3 V$ M# G; |8 {# h+ c
: @9 X O* u2 ?6 W5 b; U( M
end;
1 y) u- `, O4 U4 m. r- O/ V. U i:=PartsTable.YDim+1;. C6 _/ B9 a6 s) c: g( a
end;
3 ^/ f9 I9 J1 x" Z- E! A m:=m+PartsTable[2,i];7 j, s4 N6 B" r
next;4 |& m5 p1 u# A Z/ E- J
% F* d8 o- q" |# l
Buf:=str_to_obj(sprint("BF",@._From));! g6 e: e w- w1 V2 {( q4 e
@.move(Buf);8 E* ]# p. F0 Y+ l, }, ?, S
end; |