这个例子昨天正好看了,话说那本书的例子都很不错~ f- U' r h1 N( g8 i) n
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。4 m8 O' i/ M: O1 K, |9 E$ s
is
( P, w1 F4 C6 Q" `4 Z" T, O i,no,m:integer; --定义整型
1 a: S9 x3 H# F8 u( V. R Buf:object; --定义object7 @( [! q) }2 S' ?3 g2 B1 o
do
$ o3 \; c9 J) N* l' u0 }' _ m:=0;
! @! ]+ d2 E, }' W no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)( ^- \; I! U* h) F" }$ i( q
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行* W' E# }1 O6 ?" j9 E
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 4 n9 g9 D+ }# o+ Q
@._From:=PartsTable[5,i];
! |( o1 }2 W, P# h @._To:=PartsTable[6,i];# |! N9 u; S$ Y
if no=PartsNo+PartsTable[2,i] then # @( [$ s/ I+ g, C5 L7 S! q
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去). _) q- W: n; ]
2 ^& S- f7 x A; k% k end;9 ?6 v) }) h2 R1 f
i:=PartsTable.YDim+1;/ D- X% N1 N) Z+ ?
end;* ^& J3 \# `6 G0 t; I6 c3 N
m:=m+PartsTable[2,i];
/ _, h& A# q( s next;
6 B2 k$ B# Y* r6 V I1 o 5 a- F- d* z' u6 N' J, F! x& {( ^
Buf:=str_to_obj(sprint("BF",@._From));1 Y/ Y# K& l) }; ?' d# f, J
@.move(Buf);" s% F/ ] T' N
end; |