这个例子昨天正好看了,话说那本书的例子都很不错~
5 s8 D( f3 e/ \. j- W/ V8 Y0 g不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
+ [) o! v, M6 a. c' Qis
' P6 ^0 w% j. j. ]5 L @ i,no,m:integer; --定义整型
- ? \! F6 G9 {5 L& r9 K2 p Buf:object; --定义object- a( Q( B1 x( [
do
, D- O# O/ ^" [ m:=0;
3 u O# j# M V9 } no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
; ~$ |5 [# A& w for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
; Q. t- ^$ j: \( u if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ; ^0 @+ c: X! l0 ]: w" ?/ Y) ]
@._From:=PartsTable[5,i]; ' L; l: {+ l& ~7 {, Z4 P
@._To:=PartsTable[6,i];
% w( g! F" N* [9 o# {9 Q if no=PartsNo+PartsTable[2,i] then
0 F: @- b, s* w% s. @7 b9 Y PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)( c, ~8 b3 F; n
( p+ r3 ^5 v; S e# O, h1 S end;
# ?1 F0 ~$ c/ ~% n i:=PartsTable.YDim+1;
2 p$ g: |9 q- Q) B7 g/ w% i end;
! B" V9 A- W X r- t, ?1 j! O m:=m+PartsTable[2,i];0 N5 u0 a# K) J. b7 L
next;' S7 N& b+ K2 R% c P- j$ p* @
2 C$ R: p, }' S9 I% B( @& ?/ c
Buf:=str_to_obj(sprint("BF",@._From));* u4 u5 B" D8 w* A4 g& ?3 Q
@.move(Buf);
2 D% b+ c9 E7 q9 i' dend; |