这个例子昨天正好看了,话说那本书的例子都很不错~
0 _2 m/ B8 z5 ^5 r- g3 ]不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
4 W& {0 M+ [& w0 I( his: n* G1 m9 Y- P# h" x
i,no,m:integer; --定义整型
3 ~6 Q, j0 w. r5 |$ Y+ `/ m! k8 B' O Buf:object; --定义object0 P7 A5 O4 X. B" Z& |
do1 L- {. f( o/ _& ^ q: h
m:=0;
% f3 K8 n( Q/ P: H3 }' L no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
9 {' @- \6 h+ v6 z# f2 k for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
8 O; K! n4 A8 H* w if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ! x9 x" R m, {/ s8 `8 j3 Q
@._From:=PartsTable[5,i];
7 k, `2 @9 d$ ?/ U* a. q2 K1 n5 y @._To:=PartsTable[6,i];
9 n ?' y" `8 M; J2 M0 e* X# w, S if no=PartsNo+PartsTable[2,i] then
# A0 R- N/ g9 [. c8 H# ~" b PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)' z, t _+ E7 n1 \( k, C
9 ?$ C9 A# g3 M
end;( @! ?4 v' v4 A: U+ u/ w
i:=PartsTable.YDim+1;
; W0 z/ F* J. R0 U& c( g4 h. h end;8 D" `7 u K4 t+ W
m:=m+PartsTable[2,i]; y) h) W0 k, Y0 x
next;
5 [2 q& ? F7 q3 Q9 n3 J ) @5 y$ P+ L* H) Y, c
Buf:=str_to_obj(sprint("BF",@._From));
; r* |( o; Y/ ?6 G @.move(Buf);7 M( f& N# Y4 ^/ e
end; |