这个例子昨天正好看了,话说那本书的例子都很不错~# R8 e( O' h5 O b& u
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
) p$ ?7 x3 ]5 d: k. k0 s+ Mis
' x7 t6 O: f' F; y i,no,m:integer; --定义整型* {3 \& e# W( F4 w5 m
Buf:object; --定义object8 |# M% F; O! A4 D& R
do7 F8 Z; C3 l& K0 Q1 i0 K
m:=0;& W3 c' J% B$ K
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
5 ?$ }3 |: R# }- x for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
' j8 ]8 b# {$ J6 v/ g if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 6 g1 `+ t8 B F8 d' I
@._From:=PartsTable[5,i]; . q8 R; a. S, w% l
@._To:=PartsTable[6,i];
6 P2 _5 A" h3 W+ W! ]& p1 n- p if no=PartsNo+PartsTable[2,i] then
/ k& k! z2 I' A+ ?5 D& ?9 \! o PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)% p; W( A' C8 b, i
8 v! r( \- N t1 T% U
end;# o. _2 r1 l \4 j, C# M
i:=PartsTable.YDim+1;
( R) e1 a, L1 o4 r end;/ _+ a2 w/ c4 b" n, q, i5 }
m:=m+PartsTable[2,i];) Z# O1 C6 ]1 \, P, E$ m
next;7 K2 ?# ]3 u( o
; ]1 C4 l6 H0 Y! N q% C
Buf:=str_to_obj(sprint("BF",@._From));. w1 h7 o8 p6 i0 B% R# Z
@.move(Buf);8 B! I* O, }: M: d! K( Z
end; |