这个例子昨天正好看了,话说那本书的例子都很不错~
4 h6 x6 M9 }7 j, w4 M( E8 ]5 ?不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。3 i8 [$ \# W* v8 ~" e
is
/ L' a7 `: z u i,no,m:integer; --定义整型' a8 G$ f# f8 Q9 f5 y. O2 M" q
Buf:object; --定义object, k }: H7 `/ `' y q) W
do" c' z. \4 V# X0 @$ B! D
m:=0;
* C* f9 c4 q8 \( t* t( v( C; T no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外): L2 t. }6 ^* X+ |2 P! i7 w0 `
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行- R4 H. R2 j+ f; h5 ]) q
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ! v$ ? L9 e- }1 t
@._From:=PartsTable[5,i];
+ C D4 j/ n& o/ W @._To:=PartsTable[6,i];
# L, u5 Q5 q0 p if no=PartsNo+PartsTable[2,i] then
6 h/ Z5 q2 k6 B* o# o7 z% c PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
5 k' w( A' \1 { x6 t4 M3 I
; i! W* |' n3 }5 T, B7 x6 G3 f end;2 j" s& E3 ^: I# U" A
i:=PartsTable.YDim+1;* l6 ~$ R) O% v3 {3 z; {
end;9 X, E" |* h, c$ A$ B6 e
m:=m+PartsTable[2,i];
( L( E: ~* y W& O4 ] }" { next;
" t& a; X, o* Y/ Q" k! @
4 V, s7 f0 c& ~* \, L Buf:=str_to_obj(sprint("BF",@._From));
) r3 e' N4 n9 j+ b* @- \ @.move(Buf);
. H4 |0 m& O4 E u; a' `end; |