这个例子昨天正好看了,话说那本书的例子都很不错~5 t% W5 ~8 ?, `8 X$ e( S- y
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。2 H. Q9 k3 k; r3 G i- ^0 ?
is: |5 |8 `' q2 J# j3 b
i,no,m:integer; --定义整型
, d; G' H; M3 ^! D Q$ l Buf:object; --定义object. \) [! W+ |4 e4 r
do
4 n; G6 j4 T* h m:=0;
" U4 g- Y$ ^6 ? no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)$ @$ a/ \6 j# F4 d
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
( ?6 Z' O" N+ {8 f$ `# E& W7 Q+ ? if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
! ~& _, n9 ^- J5 v @._From:=PartsTable[5,i]; 6 t' E4 r5 n- q- ?
@._To:=PartsTable[6,i];; f0 \8 ~) H" \' s6 ^& E- h
if no=PartsNo+PartsTable[2,i] then
8 \8 o$ }$ Q: w( f1 v# Y! h PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
3 F7 q$ X+ R; ?: A" P/ Z3 U- D6 a, w/ l& K# v- A6 k$ [
end;
* T" p9 T) M9 p( |1 y: }( J( a! h- s i:=PartsTable.YDim+1;
2 |8 y% `2 l/ K+ s, O% o end;
% o8 v" D" f# D3 ? m:=m+PartsTable[2,i];
6 d" X. T6 D3 B; S% G4 @! ]& e! \ next;
, v; M- M/ I+ p z6 o5 K 3 c+ j- W6 ` y7 s/ y3 M$ t/ d
Buf:=str_to_obj(sprint("BF",@._From));4 n" v( s) A2 e; N- E/ Z0 r
@.move(Buf);+ V- G* u( C: m3 u; u1 \5 M
end; |