这个例子昨天正好看了,话说那本书的例子都很不错~) P% m& o4 Y m* e7 r3 c
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。( d. l! c! M3 }& k3 y3 S2 V' P, u" I4 x* Y
is
. g0 k. s# S7 r7 \( ]9 l; ?9 Y i,no,m:integer; --定义整型
; v) `* |: h: x |- o: ^) T2 X Buf:object; --定义object9 j4 a: Y: H; E. V
do
% b' |( f+ V+ Q m:=0;* R3 i6 H9 l, m8 U
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
, G/ o8 P: Z3 H. f2 Y2 u. K, Y) F for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行3 j9 B A+ f4 M9 J, [5 e0 ~! B: e& f. L
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 5 z9 }& Y5 i9 y4 _# q5 T' Y/ y
@._From:=PartsTable[5,i];
5 b8 J' W, T& | @._To:=PartsTable[6,i];
9 u' h% J D% {# H8 k if no=PartsNo+PartsTable[2,i] then + V8 z, s3 B4 F! K# U4 Z8 A
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
+ l y* F8 @6 U. C& n+ {- E" \% T! ?' Y) T: a& `
end;
* y5 S% Z7 R3 X/ L& R( p i:=PartsTable.YDim+1;4 Q$ Q$ c: d& H7 t6 B6 P
end;
: V2 V. n Z' t. p; f! j- |. m m:=m+PartsTable[2,i];; W+ w8 Q8 D' c. ^
next;
5 o- l1 v, O& T5 O; H- O
L% |) k8 m$ w; f; w& J4 m1 B Buf:=str_to_obj(sprint("BF",@._From));
! q0 c+ B0 k0 T1 ^# ~ @.move(Buf);
* {5 _+ V- S8 w7 ?2 N/ nend; |