这个例子昨天正好看了,话说那本书的例子都很不错~/ T. {4 ~; V- Y
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。 G7 T! a! L7 n+ | H5 h
is$ e1 o0 q7 e8 D
i,no,m:integer; --定义整型7 C2 m+ o+ X8 M/ [9 X% B
Buf:object; --定义object" N' H( F, ~; i4 K& [) M) n4 s
do
: z9 l. v( n8 y* _& R8 S& |4 r6 t, } m:=0;
4 G# }- b1 o+ y" Q" t* M no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)3 O% ^) F; F- ~; y$ |
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
! h% t- M: p' S( y+ c if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
# T5 @9 K, x( k, S @._From:=PartsTable[5,i]; 5 [5 i* U% Q% _8 d* l
@._To:=PartsTable[6,i];
" u6 m! G% a6 `' G5 Q if no=PartsNo+PartsTable[2,i] then
- J/ a! ~( z" | PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)5 [9 O. x$ z0 W3 b# a8 M: S
9 R" @6 E' }# B- J- p& E! d. L* \6 s
end;
" \* w: W# t% V i:=PartsTable.YDim+1;
* k8 c: z) q; a! |% r* ]9 [; R0 ~ end;
8 M8 F1 x; S: o2 F m:=m+PartsTable[2,i];8 c9 q+ Q. C1 I5 C! c0 O* T- `
next;! O0 X1 J( u6 P" F# c+ B
9 B" D; V& K( h6 l5 o# R Buf:=str_to_obj(sprint("BF",@._From));
& g/ U# [' n8 o* ` @.move(Buf);3 V- {/ R$ F7 Q9 C7 a9 O$ |& d
end; |