这个例子昨天正好看了,话说那本书的例子都很不错~
7 C/ I' Z3 {. h3 z F不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。% y) N: E* S, _, F) |5 L5 t& z) S( i
is, I( {# S$ N4 j2 b W
i,no,m:integer; --定义整型+ {2 E1 b0 Z) {: @% b( q
Buf:object; --定义object
8 S. D4 s! R/ s( A2 D( ado' s: X7 a- u8 i) e
m:=0;
4 i7 D8 ^! \% J/ F' h( }3 P no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
8 p' ^/ ?3 M, |& C5 ], E) ~ for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
% Y/ o# A2 }; |: \ if PartsNo=m and no<=PartsNo+PartsTable[2,i] then " [+ f- q: z7 V# s& X j" @8 ]
@._From:=PartsTable[5,i];
& r- G$ r ?% e" g0 _ @._To:=PartsTable[6,i];. B" S+ L; O9 |& X( P$ j' B
if no=PartsNo+PartsTable[2,i] then
8 ]0 Y0 O3 J1 D/ o PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去): o' Y* \6 H2 a' I, D o
. c9 D% K0 c7 u end;% s# R% x! M; |( W
i:=PartsTable.YDim+1;) W& Y1 } b0 G C$ G2 z g
end;; r% n1 z, i. i2 O% }8 R
m:=m+PartsTable[2,i];$ B. S( l( M- W$ c' ?: k
next;
5 r! f! ^$ P# f4 o* V6 @$ H9 s8 w( y
( k2 s) u" W% U! ~ Buf:=str_to_obj(sprint("BF",@._From));- K. x! `$ @7 C6 m1 ~/ y5 s; i
@.move(Buf);
' e. Y; G* s3 send; |