这个例子昨天正好看了,话说那本书的例子都很不错~
4 c3 P% l/ ~7 u4 A不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
6 @' U& s( F# pis3 V7 i9 E5 z0 E& i* Q% V0 K
i,no,m:integer; --定义整型
0 Z4 E/ e3 ]6 G, F Buf:object; --定义object7 H' ~* }/ s+ I! c: B
do# u4 i, Q( m# R# A6 c
m:=0;
, s% P @" ~' s no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)0 }- N% ?4 v: _4 |& v6 O
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行0 N3 t. O* c1 z y. }
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ) a; m# F0 X; a# c7 J# q/ M* D: P
@._From:=PartsTable[5,i]; 5 c5 K7 o& T% h
@._To:=PartsTable[6,i];" R+ M, J! l4 _8 b. ?8 _$ V$ Z B
if no=PartsNo+PartsTable[2,i] then
! C2 {9 D$ ], r6 A& w2 @4 R! o PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)+ R! O. H6 R8 x- R2 |* t* S+ N
- ]) [/ T) u# Z2 M4 G
end;
; ~- b/ d5 b* B {1 x* {1 D1 N i:=PartsTable.YDim+1;
0 R" U, G9 i7 [& L- m5 ]9 F' _) Y end;4 d: U. G" O" p _7 F' y
m:=m+PartsTable[2,i];- Y4 D- E" |! y" T! f; ]
next;
2 a' [, ]) [6 R$ X% L" Q. R ( q$ \/ f2 V/ T5 S/ N7 [
Buf:=str_to_obj(sprint("BF",@._From));9 G! l# N$ ?7 I5 [9 o
@.move(Buf);2 G4 m& \4 |, R$ o. d0 C/ ~( d
end; |