这个例子昨天正好看了,话说那本书的例子都很不错~' C+ k: D F. I% v$ I
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
+ s. q: j2 ]6 R" N; M" P" ois
' I7 F, G! E$ \6 F1 u1 h2 t i,no,m:integer; --定义整型 m2 y1 a% c3 w5 i; \% t
Buf:object; --定义object
+ J9 p6 w4 B% c* d" j5 j6 t. Wdo" \6 T3 {4 m0 G# P( g
m:=0;! m4 n+ ?! H$ x( C" B- w+ ~" [) _
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
7 x7 {6 e% T' y; e for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
( p6 ?8 h& r- R7 J" [0 a if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
# | E9 b6 P3 ? @._From:=PartsTable[5,i]; 2 h, Y4 Z# N! U) L4 e
@._To:=PartsTable[6,i];
- G5 p, j# \& X, j7 o+ s- o if no=PartsNo+PartsTable[2,i] then 1 y; f/ B& d( ^' W; P3 ?/ z U
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去); e l$ B; e$ s, G( B) y5 t
) ?0 j& H; n4 {$ M
end;
* S4 u3 P& ^6 W# ~+ L i:=PartsTable.YDim+1;
3 l5 I; s$ R/ G) M end;( \+ ^* x; G: o' g9 j& A+ i
m:=m+PartsTable[2,i];: ~) [8 b3 d1 ?, |. Y# W' }7 v
next;
@, d e+ ~" u* Y
) N9 y1 ?" W4 R9 G, q9 `* [ Buf:=str_to_obj(sprint("BF",@._From));
6 Y# Q6 D4 Q0 E% B* }7 a' F% f @.move(Buf);# P& h( A" D6 K
end; |