这个例子昨天正好看了,话说那本书的例子都很不错~
, e+ j" b3 d% @( w不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
( g+ Q% {$ z. r1 @3 O: X' t& Nis
! S5 |! J3 C8 s9 R# n! j4 f8 ~ i,no,m:integer; --定义整型
; m8 M8 x& M1 O# i y2 V6 E6 j% A Buf:object; --定义object& b& F) }- _, L" m4 N4 K9 W
do
7 j" u5 b3 a4 q m:=0;
( y/ u/ I( Q) p# g* w no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)4 z. j2 x0 N' N8 T/ f+ w( V
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
) }' \# q: c3 ^3 ?/ U if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ; K$ N( l$ k% [. r: N/ t* d% t
@._From:=PartsTable[5,i];
# Q' i4 P+ Z% _; X; I3 { @._To:=PartsTable[6,i];
* ?1 }3 b" B, e5 G8 C$ f if no=PartsNo+PartsTable[2,i] then * k8 y" g0 h8 M8 @( P
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)( S3 v; e1 {8 U; W' o3 ~
& @5 X$ S9 I( A+ I
end;/ L( _; X" ^; i$ S; \0 j% H
i:=PartsTable.YDim+1;
: o9 C) I) I5 {9 F1 y end;: P0 C: v1 `! Z! Z/ ]
m:=m+PartsTable[2,i];
+ ~$ T& c. {9 a9 m/ D; S next;
7 ?5 U9 F: ~- p' p: C& L 9 m6 R, o& L1 R# T" A& M- ?
Buf:=str_to_obj(sprint("BF",@._From));0 K" b: {0 f0 ~/ v% O) h( \
@.move(Buf);$ ~- s: X, o4 O/ U3 z' m- `; I
end; |