这个例子昨天正好看了,话说那本书的例子都很不错~5 y* i+ h9 G! c9 S0 p3 E5 p }
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。, e8 w& E* f- W+ \# r" X
is
( C% `2 z! k k0 f4 d) _2 d6 Y i,no,m:integer; --定义整型
: z- h1 F/ f) S5 A7 H3 L |( o0 a Buf:object; --定义object) ]6 Q. y5 w5 z0 o
do
( W+ C9 E3 @4 l+ `1 E m:=0;9 A3 @9 T; Q2 O7 J% _( M
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)# d4 w9 o7 |* g9 s2 `& E
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行6 A; q$ k# `# u6 ]
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 9 F- f) B+ y0 U9 x; E+ h. _: ?
@._From:=PartsTable[5,i]; 4 {8 C3 G, j0 n) u9 n% o2 I7 Y
@._To:=PartsTable[6,i];: ^- F. c& t6 Q! A
if no=PartsNo+PartsTable[2,i] then % A' `+ l; B8 k. T
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
* G! H* B9 B+ F
+ }8 Q: C, y' Y! X6 w& T end;
$ F; Q" b3 I! j* S+ c i:=PartsTable.YDim+1;' A8 X3 k% j* r/ F3 a* V- @
end;' a+ L" x3 K; A8 o* M+ r5 y: t
m:=m+PartsTable[2,i];2 l+ S! V9 u/ r( W. |- X
next;
: Y q- ]$ s/ O& p6 Z% c ( g6 s5 I- Q3 A L3 t
Buf:=str_to_obj(sprint("BF",@._From));
9 @4 r! T& ~5 F8 d @.move(Buf);, ? V# O2 v+ _5 B* U
end; |