这个例子昨天正好看了,话说那本书的例子都很不错~( S% H6 [% X% E! T C6 L
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。, T0 p* \! W( p+ O$ I9 k* K& C3 d8 a
is
- M; `' I6 E# `6 T$ G+ z i,no,m:integer; --定义整型
" B7 e3 s1 {1 g6 c/ N8 H9 t Buf:object; --定义object
) A4 z, [' Z1 Jdo; {+ A0 a0 r" N% E% u
m:=0;$ \9 b; B4 S8 ~9 w3 @' K2 A
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
0 s# H7 Y& Y) _) p/ z0 C& b for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行9 b" j/ c/ Y' R% m
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 1 S) ^% U Y6 `, |/ [9 O
@._From:=PartsTable[5,i];
) E, d, v' F# K& w0 D, b* ^$ z' m5 z @._To:=PartsTable[6,i];
/ r! @; w. S; d0 e if no=PartsNo+PartsTable[2,i] then
, {2 t& ?" b7 `% V$ h% t PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
, n4 g8 v8 p$ q" [3 c' t# l3 A5 t$ s% K' H
end;
2 M6 `5 L! }+ z; M' n0 q, D" U+ A) t i:=PartsTable.YDim+1;$ K2 X+ v- x" Z0 W/ ]# @
end;
N8 ?8 N7 B" z( |' j+ M1 ~4 Q m:=m+PartsTable[2,i];* S1 A+ \: g4 w
next;
/ k6 ]+ H" y1 j2 y. V% G & l3 j3 \8 ^) U9 [* ~/ s) |
Buf:=str_to_obj(sprint("BF",@._From));& f# b4 a: r3 Y/ Z9 {3 l
@.move(Buf);1 F' X. X1 Z0 [; j: e
end; |