这个例子昨天正好看了,话说那本书的例子都很不错~7 S8 j, t8 y3 F$ }- Q" F: q) \# m4 K
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
. y! F. I7 J4 w, Z0 _2 lis
7 [* t7 M! F% z4 V7 q# j/ a4 M i,no,m:integer; --定义整型
, t- X2 ]2 o. c" c. {: j: { Buf:object; --定义object4 k) }2 S3 q* n0 \* Y
do7 B* C5 N1 M, [9 D, w
m:=0;
; q4 e4 Q$ K7 U+ Z+ Z5 U no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
3 r& t- D' v3 Q; R; G7 U& C0 c for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
, i1 ]" k4 N% C+ K if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
( G) H; A) t# ` @._From:=PartsTable[5,i];
% h9 I/ N( E9 x7 { q0 ? @._To:=PartsTable[6,i];
6 Q! f. r% {% z+ W; y9 ~ if no=PartsNo+PartsTable[2,i] then
% V! q n# b0 H. } PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去), Q+ T4 z9 ?6 e% s' P" t
) n7 |5 y5 a8 ^+ a: ~
end;
& M- |' P* ]# ?' u, f7 Y i:=PartsTable.YDim+1;; v! U D: n5 M* N* l n5 ]5 l
end;. Q) \' S; Q6 ]7 R- |
m:=m+PartsTable[2,i];$ L% G* r; i2 g w' V* Y9 Q
next;4 s- u' f9 {8 m
/ O6 B: m5 L8 k& z8 z' {$ A Buf:=str_to_obj(sprint("BF",@._From));
2 @8 X! R2 H7 ? E/ q9 A# f+ f @.move(Buf);
$ M3 y( d2 o4 o% ?end; |