这个例子昨天正好看了,话说那本书的例子都很不错~
5 v' R$ [+ W0 Z不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。) Z9 W( y8 M5 V! x R4 E; K4 w
is
& c7 H/ u7 |# W$ ^( n [/ q i,no,m:integer; --定义整型
, J! Q/ l' e) G4 j0 | a" z8 n Buf:object; --定义object
# `! I& c$ u! _do
# X* R. W( V8 w, f; T# B m:=0;6 O/ H3 c+ x c ^4 b% R4 C2 ]
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)7 J( Q& J/ }; O6 g( j4 Q
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
! T4 S. G/ C& m' A& d, x( E if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
; {# b M- S6 z% @" g @._From:=PartsTable[5,i]; + v7 S) h. s% a5 I
@._To:=PartsTable[6,i];
1 [: c3 z% C0 @ z9 _, y if no=PartsNo+PartsTable[2,i] then
$ R0 |* ~9 d8 G# w" t: P. m PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
8 z1 g/ \, @# x- o4 _6 E. G/ J- `" J4 m, M
end;
8 t% t, o, y; |4 w# _' p* A& Y i:=PartsTable.YDim+1;+ `0 n, M) c* W& q
end;6 h' w6 y6 L0 X U9 J
m:=m+PartsTable[2,i];
* |8 Q+ @; `. U' m; y+ b' Q next;! W. e/ j* O) U6 x* g! a6 l4 x
8 W% F! y$ _0 [ Buf:=str_to_obj(sprint("BF",@._From));
, g' d6 U$ k3 e- o @.move(Buf);5 ^0 t9 u' z- ?5 N: O0 \2 A
end; |