这个例子昨天正好看了,话说那本书的例子都很不错~
8 f) V+ O$ k* p$ ?! G不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。# p; c8 o, V( [
is
4 B6 K3 B" v; E! X9 G- {! l' a* ~5 R/ L7 P i,no,m:integer; --定义整型4 c$ j6 s8 H7 K5 }( \6 S1 V! C
Buf:object; --定义object
- W2 y& U ]8 V) }6 P, X% U% Ado
, Y. j/ Q, L9 p/ I0 E m:=0;
, L2 k6 b9 H' l no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
+ w" C) ]; m4 \0 a2 G for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
6 C' t. i9 E* j) l$ N. D if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 8 s y! K8 K2 P; P O4 t
@._From:=PartsTable[5,i]; 0 ?: E* F# K7 Z! f6 i; t
@._To:=PartsTable[6,i];5 Z3 o; E) J7 F+ C* d
if no=PartsNo+PartsTable[2,i] then j2 M1 x/ t: L7 |. l$ `8 z d
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去): j6 ?# J; e2 r& u! N# K( p6 T
6 ?# ]' C, n6 r+ j& q
end;
, }* M* o# A! }, ? i:=PartsTable.YDim+1;) S) B! H/ P$ W- m c( H
end;" p) n- _6 r+ h) q! v+ z/ J0 a* U
m:=m+PartsTable[2,i];
. ]7 h% D& L9 q2 k8 L next;
Q/ }* v" T: { f3 L0 p) F
3 I$ k2 M u" g; Q# d! K1 a# A/ h Buf:=str_to_obj(sprint("BF",@._From));
S3 m, o$ o! Q# _5 x @.move(Buf);
$ @) _7 V' k b1 Tend; |