这个例子昨天正好看了,话说那本书的例子都很不错~
* z! [3 X3 Y# }9 h不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
& b8 y/ k7 X" p. L; T/ Gis
3 x( D- ]" d5 b. z8 | i,no,m:integer; --定义整型
& N" `; o/ A/ a" E& q Buf:object; --定义object
' N) ]% ~8 f1 ?3 Vdo* j" B7 H( c3 H8 n9 I- l
m:=0;
5 ?8 E9 c& g: O! m no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)4 [* o8 e4 ^9 t2 ~- L6 y
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
* T0 T& R6 |: L; ?8 Q+ R( R/ g if PartsNo=m and no<=PartsNo+PartsTable[2,i] then , T+ m; P+ P3 I' U3 Y8 I
@._From:=PartsTable[5,i]; F; I8 H/ g! u
@._To:=PartsTable[6,i];
' ?/ J r+ O% w2 G1 o if no=PartsNo+PartsTable[2,i] then
; g* U- w' u3 a) \ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
( P) V, C# u# t$ z6 S$ f' t4 c( i, M8 C4 O7 T) O
end;
6 z- [9 D7 e+ {4 |* R- r6 O, O i:=PartsTable.YDim+1;& D5 }4 t- w# M1 U. F
end;
$ D! I, u% y G. z m:=m+PartsTable[2,i];2 h0 u( U% @8 p. l& t, E
next;
/ B. V- Q4 A/ p& Y% N
& z2 L: P3 ~5 s) H \' c; u0 R Buf:=str_to_obj(sprint("BF",@._From));* V, F. }7 B8 ~) {. Q1 U! P
@.move(Buf);
3 R" }- A i6 A+ Lend; |