这个例子昨天正好看了,话说那本书的例子都很不错~
. W+ Q; _& x; x; V不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
# n6 ~5 V) C" N% e( |9 }: u& fis
+ O: m, l8 J+ V3 I# A* P/ M, n i,no,m:integer; --定义整型+ N$ I: w* [- [0 q9 R' E
Buf:object; --定义object2 p' t+ S" l* m; p: _5 V
do
. U' u: S8 u, ~& U m:=0;( v" Y( U# u |* o8 \
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)7 D$ ?6 g, d; h, U2 }+ f) F
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
$ y( O, n& k% D. y- V if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ! w0 d p5 O5 I9 X; f. h
@._From:=PartsTable[5,i]; : b9 _ w: g$ l0 m
@._To:=PartsTable[6,i];$ w$ B/ b P- Y3 z
if no=PartsNo+PartsTable[2,i] then
- ~; j# r" W6 n PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
R G8 j* m& Y/ k: l! ~" l0 y. C R/ ]* z8 S$ g$ m1 y
end;& X, _# n6 h& r9 U0 T
i:=PartsTable.YDim+1;
: ^# z& x5 O9 w, @" E end;4 \0 k! \' _- v) W/ R! z9 r! h
m:=m+PartsTable[2,i];' b4 k, J4 [0 Z- b/ V% d% D
next;
6 r9 G5 n# p; v3 S
! u9 L5 _9 _+ \7 M* m& e; _, i Buf:=str_to_obj(sprint("BF",@._From));
% W0 S2 b4 ?! E% g" v' t3 i$ [ @.move(Buf);- S# o0 R+ Y; t$ D: n
end; |