这个例子昨天正好看了,话说那本书的例子都很不错~' m# u. L+ o/ r$ i
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
" p- F/ l% x/ L# y# d1 {is3 X ?% ?2 Y7 g7 N1 L( Q
i,no,m:integer; --定义整型* m2 p K- x$ r% T' }. R2 S
Buf:object; --定义object, j& W" d1 v- b
do6 P9 D, {2 T! a# l+ u
m:=0;
s+ v" X: f1 s9 o& ] no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外); m5 v z4 x! [- ~3 r
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
2 o# s. B8 ^! @; g6 A' r6 |- w if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 3 U: S( J) {; h; \% L" o
@._From:=PartsTable[5,i];
& Q. ?7 N# P$ C G- o: ] @._To:=PartsTable[6,i];! Y* }- R* _: X, Z% ], J0 b& q
if no=PartsNo+PartsTable[2,i] then . S2 I2 v& ^6 ^7 S2 }0 p; ~
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)/ p, n$ B# j& O! Z# I
9 [' v1 e; L! N0 a% R9 [6 G% A, M end;
5 p1 k8 O! s* j9 j& J R. m i:=PartsTable.YDim+1;) y0 _7 |: T4 @' ?* i5 A$ R* R# G
end;3 f9 Q- A1 M3 S" a7 W$ H3 b' i4 t
m:=m+PartsTable[2,i];
/ } a. H; _4 w6 W7 |( _ next;
' F: P! d, P8 f/ [& v% m& j
# |2 \( |/ t( g" d Buf:=str_to_obj(sprint("BF",@._From));3 d6 N3 V8 y2 i" \5 |; b
@.move(Buf);# J+ N Z# B! N4 r+ I
end; |