这个例子昨天正好看了,话说那本书的例子都很不错~* R" }# m. v1 p
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。, R. i; k" ?$ t9 l
is
, Z, V. V) t7 j2 I$ ? i,no,m:integer; --定义整型& Q0 f! t+ P9 k2 d7 k8 `) f
Buf:object; --定义object; Z$ `, c" C4 x3 ~2 f( l6 \3 t
do: D( ?' d: x! u2 q
m:=0;
, q- }$ z# F5 T$ i no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
# G8 W' ~: q8 j# s for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行9 y+ g) ~( ? i6 m+ @
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 3 p8 R% G2 [! N4 m4 @
@._From:=PartsTable[5,i];
& O d/ V9 w- A7 ?- ]; s* F: v4 P @._To:=PartsTable[6,i];; S- e0 e5 C6 L5 M1 c
if no=PartsNo+PartsTable[2,i] then
0 ]1 Z) }5 C" j5 }6 _* t6 F- n PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
3 @) g+ E: D8 |; A4 p. ]
& F, c0 ?9 E- A; |) r0 ?0 p end;
6 ?3 i# ~0 j* A% a+ m! G! t9 c3 ~ i:=PartsTable.YDim+1;
- A; }$ b- h1 g' [& F' k end;
/ V& Y% N" o, G$ o) z1 {) T& N m:=m+PartsTable[2,i];5 X0 A7 P. t* Q# X7 z% y
next;; e( _! Q" ~: ~3 U' _0 X; G( u
$ F$ O8 w# r# V; @$ v" s' S+ i Buf:=str_to_obj(sprint("BF",@._From));7 F6 m, Y: q, Q, S9 x+ |
@.move(Buf);
2 i2 ?6 J. `' cend; |