这个例子昨天正好看了,话说那本书的例子都很不错~
, Q* a' l& }# o* Z5 _不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。, R( D z& T1 Y2 [
is8 N. O+ f/ }' S
i,no,m:integer; --定义整型
, R' [0 t: x s5 b Buf:object; --定义object
( V- d }* S& v) S/ p) vdo( u: p6 U. o, d2 d$ R$ D# Y
m:=0;+ W- |' V5 |+ z2 a9 _: x* }1 @
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
. M" ~9 q2 }: _0 ], ]9 x for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
1 l) B; Q4 h4 o( M# ?" M; A if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 5 E# D9 J j1 g# K7 a( w
@._From:=PartsTable[5,i];
* w9 r$ O4 ?, O2 `* j0 e8 C @._To:=PartsTable[6,i]; f1 b \9 e% h3 }$ ~3 ~
if no=PartsNo+PartsTable[2,i] then
9 o" T$ o: m" y# J v E PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
) q% t, Y0 O, p4 x) L5 E& B& K, m1 [! I0 K. k! M+ u' p$ k
end;
& j0 u" h3 e! q2 a4 d1 ~ i:=PartsTable.YDim+1;7 w' r. ~( E/ O) r2 S
end;8 w( a6 b. i" b6 s8 [
m:=m+PartsTable[2,i];
1 u# E6 i* `/ F6 K, l! ~/ {, { next;+ G6 c9 H. b* h2 ~1 o( [
8 F. g4 L. `7 O3 ^ a n7 | Buf:=str_to_obj(sprint("BF",@._From));3 D' B+ j$ F" B
@.move(Buf);
2 S3 @% Z% w0 q8 Q) q) Mend; |