这个例子昨天正好看了,话说那本书的例子都很不错~
/ V# }; a) l" ~# i% @* K& G不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。* j+ K+ i1 P+ ^$ U
is' z, y1 u) j9 d' V3 ^. P
i,no,m:integer; --定义整型
% c5 o) Q* M- g Buf:object; --定义object: w u# [7 U# A& l) f6 X. J9 |0 t5 Q
do
9 I( ^' H0 B% d6 I m:=0;
* C. C9 i" _7 a. A: y1 p no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)9 @8 t1 y$ _. {6 o, ]1 v
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行5 h5 e* t3 Q6 q$ }' I/ s% D Y; |
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
9 D' M( W: k* q8 j& i @._From:=PartsTable[5,i]; ) {/ `- \0 ?: ~. A0 f) K" ~
@._To:=PartsTable[6,i];
- A7 \- p+ v" Q4 a: r' W* O1 _ if no=PartsNo+PartsTable[2,i] then ) x( l: W+ ?; E
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)! C' @1 Y/ S" ]" ?7 [/ |7 K9 f
) @7 G6 _/ z* C6 H4 ]& j
end;3 [, F5 S1 V* K) T) e L$ \$ S
i:=PartsTable.YDim+1;
; q7 h0 }! y; A" N: z end;
% t, N t, D+ Q' R( E0 C m:=m+PartsTable[2,i];- _7 S! b4 l F6 Q k9 W
next;8 }7 I7 V* o2 d# D5 @* G5 H5 S0 b! Q
) }9 A8 ]0 ?* Z& k
Buf:=str_to_obj(sprint("BF",@._From));
E' w6 Y) |/ d% ~& {! t @.move(Buf);5 b& C2 I' G# Z$ g: r
end; |