这个例子昨天正好看了,话说那本书的例子都很不错~
7 N/ i& L( f, x c不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
1 {, ]7 U; `% C* F; P5 d- wis6 n; P" n# z1 U5 a) T0 T5 I. G
i,no,m:integer; --定义整型( R8 c: V5 S/ h- w: b& O+ G
Buf:object; --定义object$ O5 h2 o( ?: s8 D& N
do
+ D/ w1 \+ Z- y" G0 z; b6 e m:=0;
0 Z; y5 J E$ r no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外). H- ^) V$ m: v
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
2 O$ U# N/ c% I2 r( H0 y if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
- Y1 T/ f% A: D( ~* d9 W @._From:=PartsTable[5,i]; 8 @$ f1 z5 c8 H( ]4 c/ q
@._To:=PartsTable[6,i];
3 A7 T+ A6 ~: R S# p# g/ X+ r if no=PartsNo+PartsTable[2,i] then
5 ?* Y, H" B" I$ ? PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去), C4 T _! a! Q5 w
$ L W" o" \: k* X; {( v end;
$ O7 F: u" K( g0 C. ? i:=PartsTable.YDim+1;
7 c! t# {% g8 d# W end;1 m) B! y. F7 f" t5 }
m:=m+PartsTable[2,i];
# W' X* F& H2 M1 x1 @% l/ M next;6 `, G1 Y- D; V+ M) L$ c
8 h& B0 \# w, b Buf:=str_to_obj(sprint("BF",@._From));
" F' P3 _* ]4 B( Y9 z! s @.move(Buf);6 F8 D* J$ f- Y# R
end; |