这个例子昨天正好看了,话说那本书的例子都很不错~
) E8 Y; e* N1 V7 h- X; t+ L1 D不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
, t; @; A7 }* }6 ]is
1 \, y, `4 W' ?$ R0 o% k6 q6 ~ i,no,m:integer; --定义整型
5 q/ D( @ H$ }' L, }$ d Buf:object; --定义object, ]4 v" J( O% N5 [" T' z
do
. s* [3 p9 d* b: ?6 S m:=0;
- g$ w- ]) F0 m* n& K7 U, | no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)4 Q( \7 b1 Y2 _5 Y+ H
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行4 O, R) @/ C$ W$ V4 K
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
% h3 [& H! {& l- r+ f) Y @._From:=PartsTable[5,i];
+ X0 e! y# T: C @._To:=PartsTable[6,i];7 d' I" M K: x2 a) v' E! f
if no=PartsNo+PartsTable[2,i] then ( i& P+ {0 q' Y6 H/ h
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
& x; p" |* d6 i$ ?8 ~: E7 I; ?, {* v/ a; z- {. d9 o0 R
end;6 l* o3 U7 L9 T9 N
i:=PartsTable.YDim+1;: o: e# a+ w3 R+ u' j) F
end;) v7 I( F. X9 [! F* q9 e
m:=m+PartsTable[2,i];' N K/ `# q( c- R
next;
! v3 K3 g1 k1 ^# s) X9 Y ( c( D7 ]5 H# b; O+ {
Buf:=str_to_obj(sprint("BF",@._From));
5 R" L* o* S ~ @.move(Buf);- P4 o( _, @' Y4 d- T
end; |