这个例子昨天正好看了,话说那本书的例子都很不错~
. D( M2 d5 `# a# V不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。% d) d9 s6 Q) }* U, e% ~
is
3 p+ m2 r" o P# F, j- I6 Z i,no,m:integer; --定义整型
3 H$ ]( u. Q+ S) h! U Buf:object; --定义object. E6 T+ U6 V, P6 O: f" A
do
4 ?7 i$ T% k. s3 }. f9 O8 M m:=0;
# N6 R# w+ U9 Z1 Z; h no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)2 ]: H( Z* K2 k' k- y0 C$ B
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行5 m5 D" b) v9 G& m* |+ I
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then / o9 a0 W$ Y' V/ Y1 L
@._From:=PartsTable[5,i]; , h9 [$ g' N5 L
@._To:=PartsTable[6,i];
, P4 n/ j/ o' m& \, Q5 I, e if no=PartsNo+PartsTable[2,i] then ! I7 \! M; R' }( j
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
9 j, N+ ]0 F. R: Y6 W' f/ X7 V5 f% D5 u
end;
' _5 n( p/ j, |* J i:=PartsTable.YDim+1;( D/ {; b' B" d3 P, P
end;$ W! ^% j K' h5 W3 I q7 T# w) `
m:=m+PartsTable[2,i];
: `. a9 m+ P5 Q& z6 M next;8 t9 p( } |5 c3 D; w+ H
7 B- }/ _# B1 Z) F( ~' o- P
Buf:=str_to_obj(sprint("BF",@._From));
2 N3 a) s4 T9 j3 q+ p0 B/ F, Z4 r @.move(Buf);3 b3 Q7 w3 A2 ^
end; |