这个例子昨天正好看了,话说那本书的例子都很不错~5 K2 h- ]: G3 L& }# c
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
5 l/ r8 N% q+ x3 K- N, s" tis
8 G) E) u* x+ B; k% Z7 u- h. x0 X i,no,m:integer; --定义整型
7 M: T* }6 N4 u8 i Buf:object; --定义object Z" b& L8 o, V) F T4 K: u. J
do
4 O% }3 x3 |4 u+ t# Z7 a; X$ A. L, c m:=0;" Q( x& m' _8 P0 j" r+ D
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)0 M) _$ y. j- |; V! F4 d7 N
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行" m, T0 i! R3 j& P, `4 H
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 9 l7 b O$ h' I9 Y
@._From:=PartsTable[5,i];
4 L# j, p" n d* [ @._To:=PartsTable[6,i];
/ u$ i9 O# W1 a( w2 d% H8 v if no=PartsNo+PartsTable[2,i] then $ {& O% \/ l: d* O; V, s
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)# c5 l% `* h- F
# R0 L, e' I- |) f2 g! I
end;
. o' r9 J9 U w _: S i:=PartsTable.YDim+1;
3 }6 o6 `8 J: l3 }" V$ W" ^% c end;
8 ]$ r8 [0 h5 a: S2 O m:=m+PartsTable[2,i];
% I8 b, @% E" l7 [! e next;
8 D" ?2 `# p6 ^- y7 b$ A6 z
; W' [% b9 W$ O) I Buf:=str_to_obj(sprint("BF",@._From));9 x! K9 S r' m# T
@.move(Buf);
+ a5 W: p, j( B% X3 h- tend; |