这个例子昨天正好看了,话说那本书的例子都很不错~: X1 n7 Z0 k% j8 l
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
- o8 V( `, K) [: Iis
) P! L6 ~2 s+ o! T) x- O( g1 v2 C i,no,m:integer; --定义整型: _3 k8 R0 K% W# b! ]. d
Buf:object; --定义object
# n' J' g" X6 D6 X) Y/ ?5 kdo$ N5 R1 a* y0 A
m:=0;' V7 L1 t% |0 g2 O; I/ z
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
) `, M$ I# \6 i/ u1 \4 X for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
9 ?% q. j E- o |& [ if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 0 H2 G0 I0 m. v# ]9 y
@._From:=PartsTable[5,i]; ; j7 Q: E! U4 l: U+ c4 r
@._To:=PartsTable[6,i];
$ R! c* n' @; \' S4 n' u if no=PartsNo+PartsTable[2,i] then
5 E$ B7 E- h( D5 p" O j0 P PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)- |2 z$ h0 P, o3 O; Y
7 n; Z# V: \0 j j end;3 l; T/ |2 i0 F* u/ V# _+ F, I& G
i:=PartsTable.YDim+1;6 o0 ?, P% M3 t* {# R# o4 a
end;7 M- d8 c" c( Y, B9 b$ R
m:=m+PartsTable[2,i];
) b. r& d7 ]5 ~1 _" @% [7 [' W4 V1 o next;4 n0 y7 f: o E1 S8 ]0 L
, t# W7 \. }" I/ Q3 _
Buf:=str_to_obj(sprint("BF",@._From));5 a2 C% F+ p2 E
@.move(Buf);$ @ V- x) n: w9 w. y
end; |