这个例子昨天正好看了,话说那本书的例子都很不错~& \! H& `0 F+ G* c# ~1 d
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
4 o; b6 r8 F# C& x1 b6 ^' ~9 \4 Ois
8 v: B( F z1 I i,no,m:integer; --定义整型$ [6 z J* c( i* D# l+ T
Buf:object; --定义object+ ^3 [" g& y& W5 [, l' m
do
1 ~/ J" y" m9 t. R2 a' G2 K/ V m:=0;
. g+ \# Q v2 O0 f' A: ^ no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
$ C- O+ I3 d* n9 X8 Q8 s9 m for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
2 x# |6 o! S; h! B% m6 o if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
0 |- v) x/ j- R- M7 x# c @._From:=PartsTable[5,i]; ) |' l0 h; K4 y* ^: g+ F
@._To:=PartsTable[6,i];5 a/ t o1 Y, J: k: _6 v- F6 @! s
if no=PartsNo+PartsTable[2,i] then . u& s* c4 p Q
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)% ^; r7 _' s9 v6 v" k0 \$ R
, N* i: n' H) Y* k end;5 X! x5 [+ G' C4 S9 b
i:=PartsTable.YDim+1;
. j. A. ?8 r* R. ]$ g7 Q) V5 T8 ^ end;
" F" J# N1 E% J; \* d m:=m+PartsTable[2,i];
8 P$ e5 c& s' p# m) o9 F5 L2 M) `& V next;' E4 m* f! X4 Y% B+ s. d
. f) u. {. T ^: a6 [
Buf:=str_to_obj(sprint("BF",@._From));
; M$ U' W; t5 l2 U: h3 s1 k& [ @.move(Buf);
# Z" K8 k, p3 [2 bend; |