这个例子昨天正好看了,话说那本书的例子都很不错~
: f7 c% S/ ]6 o$ \! h2 \/ S( U1 S不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。 o H& _4 \1 w! r5 n% Q9 L
is5 b8 B9 ?9 l! |' p1 k; l9 o
i,no,m:integer; --定义整型
5 }9 M5 h, H4 p! ~( A* b9 m Buf:object; --定义object! Q" t, b+ N9 ?9 N( J6 s! u3 j
do0 [ {, I/ Y5 x |2 E
m:=0;* Z; X: ]' s1 Y, B& q/ F. f: [- X8 @
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
4 w) D+ v: V* a* m2 u8 b! T3 K: t for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行+ `3 f! l( B( j6 y2 |! p: A3 S
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then C% g5 N, E+ n# W9 q0 v
@._From:=PartsTable[5,i];
$ O& g, e; M6 v. V4 Y- b" q @._To:=PartsTable[6,i];
0 a/ }# e1 W! u$ E+ O( w) K if no=PartsNo+PartsTable[2,i] then
% z, A% j) X) i! z+ h( J PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
& V3 k- Z2 k* y: [" ^
' g% a' d1 @# e end;+ V( S. E" `, L8 V; J' d
i:=PartsTable.YDim+1;
, ~9 e4 D# \# l$ |8 f+ F end;9 I+ W1 V6 Y. x' x6 Z- v' Q- Q
m:=m+PartsTable[2,i];, V* o# L9 `" d; B
next;
7 P9 m1 _- `' {/ Z& i
; V+ [+ r- F: r Buf:=str_to_obj(sprint("BF",@._From));
8 X* H1 @. j: y! k- b4 Q; E @.move(Buf);
1 u& D* m( w: h$ q) W; w* h, Mend; |