这个例子昨天正好看了,话说那本书的例子都很不错~( t) ~8 P; ]) A: m* y; @
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。4 V" q( U6 }* @, N0 b" Z5 s! g
is
; A+ u2 w3 x+ I9 f3 r1 @6 Q i,no,m:integer; --定义整型4 t/ f3 H# F4 k+ f
Buf:object; --定义object/ Y( A; ` r6 [: V3 w
do
0 o9 v) D+ V: V! l8 } m:=0;& P# m! v. ^) H
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外). r! p! K2 Q4 ^* Y. e4 y
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
2 O" J) E. Y0 I0 o* T* `; X5 q( a! J if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
1 a7 ^5 e1 z: R: m3 y% A8 x @._From:=PartsTable[5,i]; % P y/ r" B& _5 Q, N8 e
@._To:=PartsTable[6,i];3 Q5 x& G: W7 R5 W3 i
if no=PartsNo+PartsTable[2,i] then
9 `9 t" b$ `/ ? P PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)' d# W/ u4 L! n5 ?
; E% \6 @7 N7 G! Y( u1 {& f. R end;# b6 c, ~5 j! ^; {! o0 R
i:=PartsTable.YDim+1;" {9 T! A% Q; K8 x2 Z9 _ [5 F, W
end;+ a: \* j6 Q! o5 i3 R1 @! I+ ^
m:=m+PartsTable[2,i];
4 s& p1 e, w8 I+ {* \ next;
6 d4 T/ W3 N f5 v5 L: R0 ~ " O) n* t& K0 ?& b+ Z1 {
Buf:=str_to_obj(sprint("BF",@._From)); o$ e% m0 b. h
@.move(Buf);
' |: u, C" p+ O: v) K2 nend; |