这个例子昨天正好看了,话说那本书的例子都很不错~" j( H+ n. L! B5 S# t5 Q
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。/ N, }' i0 m, O, a
is
1 c' ]) I; ~; ]; m$ q i,no,m:integer; --定义整型
/ }6 p9 J; u8 n$ X+ O* j4 z: J5 B1 ` Buf:object; --定义object
7 b: f1 C4 k" @) T5 \do
5 J. C2 i+ a- D: H: ?/ S m:=0;
) p" M+ V3 k$ h7 k no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
$ ]1 ~! i5 ~8 ~( G+ G0 O for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
! E' U5 k6 j- a7 A: x if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
3 ~+ b+ N E# M @._From:=PartsTable[5,i];
7 L3 F5 {7 o) z9 C6 G' Y: C& z* F @._To:=PartsTable[6,i];
% }, M- @0 z/ [' s if no=PartsNo+PartsTable[2,i] then
) M _3 ?$ t. a/ H1 `; B) N: L2 T PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)1 D2 f- Q* I1 c- F8 i! W# E
+ [% ^* ^3 q0 ~3 d4 M7 }9 |$ z9 ~
end;
7 e/ N- k9 g5 H i:=PartsTable.YDim+1;
5 a2 f" d/ O, b# i6 { end;7 H$ q& F2 p$ D% F
m:=m+PartsTable[2,i];+ t6 F/ r* \: b. |
next;
$ c$ i% d4 g2 N# Q
' f/ K/ o; V6 F5 f" K! U+ X/ W, e Buf:=str_to_obj(sprint("BF",@._From));
! J: d+ K% I6 w* {( C @.move(Buf);
$ r$ `! G; \5 l1 E4 k! Cend; |