这个例子昨天正好看了,话说那本书的例子都很不错~* _1 p5 i6 a7 b/ Q; T4 c6 H( a
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。* Q Y x) r1 v: }2 t! T
is, y0 @8 h r* q/ H# F
i,no,m:integer; --定义整型
3 \6 o4 Y7 n9 _6 j9 R; D Buf:object; --定义object! E' z' d: T/ p6 o, g2 J
do: I, }7 ~" r1 Q# P/ r
m:=0;
+ T$ S- J" q7 L$ o, u" K no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)$ J% L0 W0 H: J3 t1 }2 v) o
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
+ O# c+ R1 t, r2 D- D; L5 r if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
* t! O1 W% B% \3 s" ` @._From:=PartsTable[5,i]; ; f {# V0 t2 P; Y" |, K
@._To:=PartsTable[6,i];
3 x+ n, d8 @: I if no=PartsNo+PartsTable[2,i] then
. \5 A5 q1 W4 w2 r2 C& u0 ^/ D8 R PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)2 R% M5 S2 W0 P3 J7 Z2 a8 P
; C- T7 \- |7 l8 I
end;
+ L8 U3 f Q7 O8 b i:=PartsTable.YDim+1;
0 {9 f9 k% p/ a- ]' S' T" c0 O end;) M7 X8 w7 h7 F, j
m:=m+PartsTable[2,i];
/ }9 ?0 m$ n5 W! x0 ?3 g+ Y M8 N next;
[& M& p/ ~/ y* P8 ^: h. E
, l! s3 \( `7 j7 D! X8 i Buf:=str_to_obj(sprint("BF",@._From));2 S+ l9 ~: E: c7 v0 `
@.move(Buf);. y& [7 k8 B+ n: U
end; |