这个例子昨天正好看了,话说那本书的例子都很不错~
7 E S, c& X# x/ D t不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。3 r" {% {0 i$ u4 |) U/ K
is
" [3 |5 h" ?% z' t- ~ i,no,m:integer; --定义整型' U* l5 j8 S; |# ^3 n
Buf:object; --定义object' T; }, C+ ?* g/ f
do" m- R( i, |6 S7 P- Y0 r
m:=0;
$ [, ? |! w4 S4 ]5 M0 ]9 I no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)- b- r ^7 k% Z% M! C" k, M( h8 {
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
5 a ]9 E7 \; M& c" K* {+ p, ? if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 6 x. s, X; V( r7 H
@._From:=PartsTable[5,i];
/ `. @+ M$ d' |* |. w$ G& R5 W @._To:=PartsTable[6,i];
e0 T3 F& d& k" O3 M4 c+ P if no=PartsNo+PartsTable[2,i] then
# r. b ]5 ^2 j7 m PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
3 b8 ^4 E2 h! H( q9 D$ f1 D2 m5 q' K" G; z
end;
. E+ F. U1 d5 { i:=PartsTable.YDim+1;. r/ [0 j; G4 i' q
end;
$ O3 f3 m' ]. `" D) d6 s m:=m+PartsTable[2,i];
6 U v2 W$ ~2 N6 h' K9 ` next;
2 B' }6 ]0 j/ g+ o2 W 5 m, _0 `/ s" T
Buf:=str_to_obj(sprint("BF",@._From));
- F8 v3 _5 Y8 g: \ @.move(Buf);. G+ O& k; q8 i% l" ]. X( z
end; |