这个例子昨天正好看了,话说那本书的例子都很不错~- W3 D6 r7 B; d" V" m: {( h
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
; A. M- Q& G% g9 x0 Lis
& u, r8 V: ?: g1 M3 S i,no,m:integer; --定义整型
9 N! d- i# Y8 q- O+ T* F3 a9 @ Buf:object; --定义object- J( Y, \& v8 \
do
/ ?9 f' x7 P& I6 i$ R b" U4 P0 Q m:=0;% J6 e5 _% v! [" N
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外); c' S% t$ _2 D! Z6 r& X d' C) |8 _
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行7 Q; R( Q* {+ L# B: ^9 E: T, d# v
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
# c6 k. r" l G& J/ M @._From:=PartsTable[5,i];
6 Z0 p2 y& }, @" r0 z& G/ p @._To:=PartsTable[6,i];% \! H# a, d+ s0 x3 W
if no=PartsNo+PartsTable[2,i] then ( ~ B, Z! C: [5 H3 z" k) m! I0 ]. I/ Z/ b
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
6 S" H$ h0 ~/ b6 V' A! S8 U, Z- G1 y; d5 A: B
end;5 L% k9 X6 u9 m: P+ M
i:=PartsTable.YDim+1;
v4 B1 c* { C$ L) g ]$ ` end;
7 x2 E. K2 E' Z7 y2 ~ m:=m+PartsTable[2,i];
7 [! G0 G& H7 C( n; a next;- n* u, y& q7 O, U, G6 I% y; O2 M
9 t' I0 E& e/ q. g1 @2 m Buf:=str_to_obj(sprint("BF",@._From));. \/ x: H$ j2 m+ _% d; Y# i$ |
@.move(Buf);6 d+ @% O( c6 z5 p7 K
end; |