这个例子昨天正好看了,话说那本书的例子都很不错~
3 [6 v+ J* r; s不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
- z O! \' j2 i" p+ I% [4 g) P1 T2 Sis
3 o7 b) _2 L8 W1 K i,no,m:integer; --定义整型
1 i$ Y3 H3 f |/ b Buf:object; --定义object9 ? |) @ G4 x* c
do
) g$ f; d- ?! t2 L m:=0;( W1 D, l+ Q9 n5 G6 ]
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
$ ~- J" s: m3 z: S! T' A for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
6 a/ | X7 T) G. {' I* S if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ! m4 E3 `4 D1 p6 |" X8 \
@._From:=PartsTable[5,i]; + }, b+ h+ \- M( c# C% t/ z: w
@._To:=PartsTable[6,i];, b* l W7 N- G2 s+ x
if no=PartsNo+PartsTable[2,i] then ' c6 c2 P# J/ P0 S+ ^1 O
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)- [; X; P3 B. Q8 P) X
. ]+ l* A/ C: M5 M& g! w* W7 d5 i
end;( l8 C. D$ w7 `* {4 o
i:=PartsTable.YDim+1;/ y+ \ [2 }1 p. v2 f' d
end;
1 c8 d& c7 @& q1 J m:=m+PartsTable[2,i];
1 {7 Z$ F* [9 x* z& M next;
5 q. q2 d( R3 |5 P 5 r( _, v _/ A- O
Buf:=str_to_obj(sprint("BF",@._From));
) U4 S+ |* {# ]7 U6 o @.move(Buf);9 y3 B: B6 J0 C# l' O, n% h6 V
end; |