这个例子昨天正好看了,话说那本书的例子都很不错~
8 d7 Y" `; }, p3 d6 ?不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
7 ]( g4 ^/ v) C& d4 u! b& u3 y Jis
9 c% |; C& i% Y, B i,no,m:integer; --定义整型
2 G" T! x! f7 ? Buf:object; --定义object
. `: D# _ O v+ {* {do
4 r+ a4 I$ k+ E; V m:=0;
: u6 {* Q8 [8 M' W8 B no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)/ G. ?4 v' |0 U3 X5 G& a
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
) K- X) \: A( {6 c# d if PartsNo=m and no<=PartsNo+PartsTable[2,i] then , O0 x* x. U+ o" o
@._From:=PartsTable[5,i]; 7 Y R' T% b) Q$ f6 i
@._To:=PartsTable[6,i];6 J: m! u# C; t' d8 O: w
if no=PartsNo+PartsTable[2,i] then 9 q: u8 X$ |9 l( Y; k0 s
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
" \# z/ M1 P8 ~$ w! K% A- _
3 A8 d* ^+ L; G end;
0 ^. f9 ^ ~7 [' ] i:=PartsTable.YDim+1;
: c; \, o3 C7 H" E# y1 M5 t( S+ f0 Q end;) h/ ^- B; A1 @( Q$ k
m:=m+PartsTable[2,i];4 x1 Z& u9 @& [8 u9 Y/ S
next;
6 m1 e0 z- ^) D
3 k$ {, R$ c5 W Buf:=str_to_obj(sprint("BF",@._From));
0 ^9 [! n; m( k3 j @.move(Buf);) Q o! ~, E$ ~" l3 E/ @
end; |