这个例子昨天正好看了,话说那本书的例子都很不错~
- ^+ u8 x6 n! k( i+ a% t不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。' D# m% t, q; s0 G2 t+ T
is* {! @9 M4 P6 K: E3 Q
i,no,m:integer; --定义整型
7 D- h$ _2 }9 c) g+ P8 y- U Buf:object; --定义object- ?- W( B' _! c: C* c4 m( H
do
% j, X; w8 S. p4 N" R m:=0;6 D0 f1 |# J8 w" b2 x, r: F
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
0 `$ y g$ {' @! B3 b/ p for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
+ I) |0 G) j. s1 z8 K if PartsNo=m and no<=PartsNo+PartsTable[2,i] then + b# [8 g% q( w! Z
@._From:=PartsTable[5,i];
# g: {% y4 u+ @4 {. `& B @._To:=PartsTable[6,i];
8 i1 M4 [& D; j S if no=PartsNo+PartsTable[2,i] then 9 l% _/ a6 `/ Z, L5 _
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)+ ?/ ]! J: |% I1 a& t6 S! x
* B. D8 p. \$ f+ j5 e2 g
end;
3 r! b! q1 g; w( j) a i:=PartsTable.YDim+1;
9 d9 t$ W* R4 }3 m+ g5 Q2 c end;
/ e: \- h4 _$ U1 F, I+ u m:=m+PartsTable[2,i];
1 P6 f6 s5 T; k& Q5 C: S$ u/ { next;, M1 i$ @8 h3 f% i Y( l/ ~+ m, ~
3 U0 _9 B8 S/ V# T Buf:=str_to_obj(sprint("BF",@._From));
j, k9 }/ P, m. f @.move(Buf);
: J9 k4 d/ w3 A9 L. j. \, Rend; |