这个例子昨天正好看了,话说那本书的例子都很不错~
5 t9 K6 k) f# ^不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
4 Q# @ t- Q$ q7 Mis
( {6 T; U5 K, M( X, l) x4 ~ i,no,m:integer; --定义整型7 T1 S- H! n% E3 B, X
Buf:object; --定义object# g' ~7 f/ m) U: V2 ~" {
do
1 {# X' [% a) K/ V9 { m:=0; P! P/ z/ k' F& ^2 O6 {2 e; t9 e
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)8 s9 Q- i% a, J9 V {) A7 |- b( R" S
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行0 t6 [' ~' ]7 n9 v9 Y
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
8 F: ^5 H0 A, [- | L/ l6 l& [2 T @._From:=PartsTable[5,i];
, i- g4 s4 R4 ?7 V @._To:=PartsTable[6,i];, \2 V& L, D$ T3 |( r
if no=PartsNo+PartsTable[2,i] then " ]5 D# z. T+ j" ]/ g/ J' j5 {
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
& s `5 m9 [) C+ T: H; g
; |/ b' M' H/ f. d% y end;
3 X% g; p: S$ K i:=PartsTable.YDim+1;0 n8 \! X( t+ p" ?1 D- @! h2 |
end;4 M# ~& J, `) o/ }
m:=m+PartsTable[2,i];
# m% h1 W$ g4 }/ p1 E; R next;1 T5 P3 `. t b8 F- U* n$ m
- i9 R$ Y# W/ d+ G" H4 I3 J& B
Buf:=str_to_obj(sprint("BF",@._From));4 d" o& M' e$ E0 N: [* v( Y
@.move(Buf);
$ L' j+ H8 _% \, a1 b# Jend; |