这个例子昨天正好看了,话说那本书的例子都很不错~1 L( O: q+ U; s2 M- n. e* {
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。. a& W" l# u% L, f
is! ]; _3 Y7 C5 @6 B' F
i,no,m:integer; --定义整型/ ?9 |8 x4 L) I) F8 J' p
Buf:object; --定义object* F: y2 l8 k4 T+ F
do8 M9 D- B7 ^4 f- i5 @
m:=0;
0 T- G( e2 v% v- M( g( ~ no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)" n3 `( x$ I0 a9 S
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
2 R3 o* v6 A$ J, B if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ( a J/ T8 S# @5 o- J$ \6 s9 O
@._From:=PartsTable[5,i]; 7 [* G' M0 w0 D$ a
@._To:=PartsTable[6,i];) X8 j/ k/ z z' `0 d* c1 P
if no=PartsNo+PartsTable[2,i] then
* O7 z% i1 l' `$ u PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)- M6 J9 U7 _5 @0 L- z* E
& q- d+ Q; l/ m N
end;* W! z |$ a& d" H* I. R
i:=PartsTable.YDim+1;
" _' k* s- ?9 H9 H M% ]& x1 U" f1 k end;# K2 s) a4 ?* n+ v% a2 H) g
m:=m+PartsTable[2,i];* m/ [/ B D; P' E$ K" {
next;9 d; N9 e0 \5 I4 c8 P% \. A. i% I
) w: ?2 P% R1 c" k2 Z
Buf:=str_to_obj(sprint("BF",@._From));
$ f* e0 T; s' _, {3 y0 l& j @.move(Buf);: s h8 Q# _. t' Z4 \; [* G, U, p
end; |