这个例子昨天正好看了,话说那本书的例子都很不错~2 \: r& X" V$ t$ T* l9 k5 X/ T+ Q
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
+ O' T- y. s9 B& Nis" z7 E+ h# m) T8 H
i,no,m:integer; --定义整型
8 o& \# ^9 Y! z8 ^/ J Buf:object; --定义object
% A8 X" b5 j$ a& ]" U$ _8 Ydo4 I( |/ U! ]7 F9 K
m:=0;
8 p- c# {) m8 C# v4 N no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
. e% ?- |, }7 @. W; r for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
# u9 d( L7 x G4 {9 B if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
: C; J. T0 v1 c p3 w | @._From:=PartsTable[5,i]; * ?: U( Q/ O- c ~, b
@._To:=PartsTable[6,i];0 j( Z" O0 _: G2 e
if no=PartsNo+PartsTable[2,i] then
; g0 ~* X' s* n) Y5 b PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)" h" u2 t/ [5 F6 n! Q2 r; }- o1 q9 M
1 w' C0 f2 A/ U( @0 L# ~, k
end;
% V# @3 p+ v1 ? i:=PartsTable.YDim+1;! j3 d! j7 A7 M0 E7 ]( l
end;
! O& {/ i' z8 f m:=m+PartsTable[2,i];! H7 _ a2 _4 h- m3 R* k( J* {
next;- q& _0 w/ [9 F
1 W7 _: Y- Y8 Y8 N: V7 B: D! `+ L
Buf:=str_to_obj(sprint("BF",@._From));
2 g; Z/ v; \( ^9 w1 C" i @.move(Buf);
: ?! w, ~* T! Q) k4 E7 }8 [9 cend; |