这个例子昨天正好看了,话说那本书的例子都很不错~
) t; s( w, e; c0 c$ o Z不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。9 Y- l$ e4 Z" \# K
is
+ Z9 Z' a5 }! W- |' \ i,no,m:integer; --定义整型( K# R) Y {# b9 o
Buf:object; --定义object
# @4 p# c% ~, ?5 u4 `do6 q5 O) `* W% l" |
m:=0;* A/ t3 D- Y' z. q, e0 Y0 w6 l
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)& W/ B: T% s7 w5 G
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行$ p; u. o/ D' N$ J/ V
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ( g H) c* s d9 u1 d2 \1 `
@._From:=PartsTable[5,i]; 9 t1 f0 P6 R/ B
@._To:=PartsTable[6,i];
1 O' J3 g( J" y# X if no=PartsNo+PartsTable[2,i] then ( V. \2 a! ~1 {4 e" J( J- ]
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
. V$ t0 J. J4 o" p- h# l: e, X/ }( U, N
end;
8 x. { z! E4 S' E i:=PartsTable.YDim+1;
' X1 j- N% Y: g2 {# v3 a end;0 A, h- H& X: B9 @
m:=m+PartsTable[2,i];
. m4 [. u% j, }# V! o; k% k next;
5 q4 K5 ~+ o" E0 ^ _& t3 ~
& y. g) D7 Q: Z! }7 t Buf:=str_to_obj(sprint("BF",@._From));
# \; r( m1 Y' e/ [ @.move(Buf);
) M2 J" Y5 O" O- A @, e2 uend; |