这个例子昨天正好看了,话说那本书的例子都很不错~
) ]0 w" h z& x' [不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
. g B s* C% N3 f2 n$ k7 b2 U1 pis
5 s- B# e# j; G9 b1 j* g8 M i,no,m:integer; --定义整型, V$ A0 y; Z6 K
Buf:object; --定义object
% q+ y" d, b7 l" Tdo9 l8 s) A8 M8 L# ?/ K
m:=0;
/ T# H5 R* G; ~" u8 Q no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外): d$ @1 }2 D# k! q
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
9 ^6 n1 U; M8 ]( v- g if PartsNo=m and no<=PartsNo+PartsTable[2,i] then - L9 l9 D; _, Q/ q0 O
@._From:=PartsTable[5,i];
5 n' T4 X6 m* D9 t& y, Q @._To:=PartsTable[6,i];
5 \- m( \$ r M6 Y+ Q1 u" g if no=PartsNo+PartsTable[2,i] then 0 G7 j4 {' ~$ g" X% R+ w
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
; `: z+ A* S6 h2 R+ }9 M3 E2 e) b, O) A
end;4 [& g6 v$ C @6 N! U' h
i:=PartsTable.YDim+1;# H6 L/ c& `1 ^, G: |2 }. V: ]+ ^
end;6 M- q( u" r% y( _8 d" c; j/ x
m:=m+PartsTable[2,i];/ R l- h) L! L2 h' k
next;
3 ^! l6 j2 q0 k# c# a2 r$ N, ^( m % v: u6 `' A r% r% R% Z6 L
Buf:=str_to_obj(sprint("BF",@._From));
+ I6 L0 H+ E" {) f2 \4 D- _! r @.move(Buf);* W" {$ q$ Z0 t' r, o, _+ O
end; |