这个例子昨天正好看了,话说那本书的例子都很不错~ u3 f% `# d L# i2 ^ V
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
' h' W9 Z7 k$ W8 G g1 Yis$ t! w6 m/ G+ I2 I- z6 y q5 F
i,no,m:integer; --定义整型
% V7 o9 l, {. |2 Q/ O* W% ] Buf:object; --定义object
3 T' ~3 P' u4 R* n: H) Ado- P( M) e* N/ R( O: N: X4 s5 G
m:=0;$ f, a+ d# z1 N" D
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)1 ^5 C; l6 r3 d
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行" {, B& U: H b+ ~% R
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 3 R1 l: |7 I7 J4 f+ R8 t
@._From:=PartsTable[5,i]; 4 m" u4 }* I1 `; R$ j; [0 o' W" I
@._To:=PartsTable[6,i];+ v% {4 v! f! L
if no=PartsNo+PartsTable[2,i] then
9 s' _( W3 J: K$ B$ r& c9 \ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)9 f+ E$ Y" c% l9 T' X* D, {. \( w- G
0 d9 r+ t- X" j. E" ]/ y4 h5 g end;
. r C* g; l0 m% ?: d# Q- e i:=PartsTable.YDim+1;
8 R2 q |, P( f3 I) o2 @3 q5 e end;# P4 Z# D' A/ U/ ~3 u) A# k6 y
m:=m+PartsTable[2,i];
0 b& |8 R& U, _4 P4 f& U6 N8 H next;
% o, _; `3 ~% e" k! q0 t' X+ S( ^
" l. t! O, d: j! w" T, T& q& j Buf:=str_to_obj(sprint("BF",@._From));. R+ [" m1 ~" c- [
@.move(Buf);) g7 B0 o" _5 L' T9 l$ h2 C, t
end; |