这个例子昨天正好看了,话说那本书的例子都很不错~
9 l- \: ?0 \- E9 z4 Y不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
4 V. L* S- \ t2 F5 U4 D3 uis
1 Y' b; {) M: c% x$ E i,no,m:integer; --定义整型4 d9 q. n# m7 R: f8 a& X2 c
Buf:object; --定义object
2 }# x) u S3 \' y* y Xdo0 ~: S& I2 \, d' T' q! m+ P
m:=0;( U: G$ V7 d, ?# f2 h/ o x( x
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)' h* Q0 ?! v+ W( H9 e& W
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
/ S b$ k/ L& N! K9 b$ N4 M4 w if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 5 T7 B8 j/ _" X- I
@._From:=PartsTable[5,i];
' O: f d3 b2 t8 Z; s% a! p! ] @._To:=PartsTable[6,i];& q% V# |: U" D+ d+ `, M
if no=PartsNo+PartsTable[2,i] then
, K7 |" t% Y3 {( N PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
5 n, \4 @1 ? ^7 Y' O: G s( M( H, M
end;$ o0 a; T. P8 N7 U+ i
i:=PartsTable.YDim+1;/ ?0 |& w, o" s/ `4 f0 R% K' M9 P
end;
6 y' b( M3 j" {7 p4 a7 A5 w0 J+ A m:=m+PartsTable[2,i];
; b. _( r+ S0 U4 N next;
9 K6 f5 H1 \0 B 9 u- V6 [7 m7 a4 I J
Buf:=str_to_obj(sprint("BF",@._From));/ e7 n9 F6 g+ C( m2 F/ s' Y. N
@.move(Buf);
^; t8 Z c6 \* s2 dend; |