这个例子昨天正好看了,话说那本书的例子都很不错~
5 J+ a, P3 k8 Q) Q, Z不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。3 c; C& g# w6 @9 F) W# M
is
; ?- a1 C! W* s r2 y; X& H9 s i,no,m:integer; --定义整型( b* ]5 G/ T0 z
Buf:object; --定义object
2 m3 w* l1 r" n6 r( z0 B4 F) v" pdo
P3 @' _3 ~ u; o L& E m:=0;
2 [) J' Z$ E# F( j no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外): q6 |$ H5 k w+ Y3 ^
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行) \( u h3 w) t7 Y, e9 [+ d
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
" Q" R9 P7 K5 e: t; a @._From:=PartsTable[5,i];
/ j5 S/ L# Z% b* K* U5 V+ ` @._To:=PartsTable[6,i];
& H: y" y8 L5 J, p2 N* W% u# z if no=PartsNo+PartsTable[2,i] then
5 w% M# _% G8 l' h' {) z! m PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)- m: E' N7 y s r
; Q# j: c* O' Q2 c0 N
end;$ v& ?& B3 \* k& g
i:=PartsTable.YDim+1;
/ i% W& V( J/ Q7 L/ p; [( l! A end;
; R; c5 p" a* _' S+ K [ m:=m+PartsTable[2,i];
' J# D2 W4 U# ~) }0 Z" m) w next;
. g5 s, A( Q+ C6 @! r$ `+ A - e- o9 Z9 s* }; Z2 e. U
Buf:=str_to_obj(sprint("BF",@._From));- v8 i8 v9 c" L" X
@.move(Buf);6 B7 J$ R4 [- s0 |" T' \0 C
end; |