这个例子昨天正好看了,话说那本书的例子都很不错~% p X/ H0 [ G1 D0 e0 e( Q" h% C
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
6 U3 @" j) l* y& i, ?# Kis! m8 X$ d6 }+ ]4 q' ?
i,no,m:integer; --定义整型. Z, j. S6 N' U# S Z7 U8 W
Buf:object; --定义object
: z2 y% ?5 B6 ^# }do/ N. C# W k. p8 v; `( @
m:=0;
L$ W; X% D# o" g no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外), F/ E% M- \4 }0 `
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
0 J3 m# }4 @% {& z if PartsNo=m and no<=PartsNo+PartsTable[2,i] then # ]. u5 w! b8 [+ A* z8 B
@._From:=PartsTable[5,i]; * y6 M$ y8 z P4 j
@._To:=PartsTable[6,i];% p/ b# T7 {1 {
if no=PartsNo+PartsTable[2,i] then
( [& U$ v* z2 B& R# |5 ? PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)2 j% W* I" u0 M7 K: b7 j2 m& ~
" |" w2 q% |1 e9 E end;
( Q# {. N( j- l' Z% X i:=PartsTable.YDim+1;
7 X5 @% J( M; [ end;7 l$ J2 q! `% k5 N" E1 z K: z
m:=m+PartsTable[2,i];, r0 w, i7 A3 s8 {8 j7 ?0 }3 z
next;5 F7 G' j8 S3 }* H+ {% m" R, A
) W" t" r9 \5 j" i6 w! d6 A* i
Buf:=str_to_obj(sprint("BF",@._From));
: i2 o8 P& p8 h7 x, } @.move(Buf);
, S& Y$ g$ [7 n yend; |