这个例子昨天正好看了,话说那本书的例子都很不错~- z: A( e6 b6 b* l
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
# J3 d. v6 M9 L2 d. a+ Vis% p5 M# K) X% w; E2 u5 z3 G
i,no,m:integer; --定义整型9 C3 \# }' c8 Y
Buf:object; --定义object# D* B9 C$ N1 O" L% A
do, Y0 b/ a6 P ~! ~& k6 N$ @: C' c
m:=0;
7 S" r+ c, Q0 I2 |& P& P no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)! v* r5 t4 c& n& ?7 a( }. C
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行$ p3 |2 i" W1 e1 k8 @
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then * B& A/ j; D3 |) j- A
@._From:=PartsTable[5,i]; , Z3 r) _& D* T, s; P
@._To:=PartsTable[6,i];
8 t5 Y5 T0 Z$ L if no=PartsNo+PartsTable[2,i] then
3 L% ^" ^2 h# Y1 T" s1 S) m5 Z PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
- }; H4 S) j- f! B. X
3 Q5 J& I J" |2 r, \; m' j end;4 p# F3 w4 h; w+ A, x! M1 \
i:=PartsTable.YDim+1;+ Y& b' v' Z, v' ?8 j* T4 ]
end;: p" S3 C# ^9 G+ ?2 c @4 J
m:=m+PartsTable[2,i];4 T8 w* X7 H, [, X8 E9 l
next;; f7 `; l$ h6 e. a% n5 o: B6 e9 o
, _' S8 V2 j+ H3 s/ r. x Buf:=str_to_obj(sprint("BF",@._From));9 ^! G1 \" A. P0 @! ?$ X
@.move(Buf);5 V7 U& T9 a* i" L6 G
end; |