这个例子昨天正好看了,话说那本书的例子都很不错~
' M+ }5 j4 e- ]不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
! H* \/ a1 \) E1 v$ `1 eis$ ^9 f1 Y1 h" C! K. w
i,no,m:integer; --定义整型
/ @ @5 T; \* x. E0 U' T Buf:object; --定义object h0 _# X7 u, ^" i% p
do
& `- M; i- ?$ Z) n+ a6 e% F. ^8 } m:=0;9 f9 u& G" U7 ?4 J2 `& ^
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
. x9 ~. M( K, C- @0 d for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
% X+ f" {# W5 I( C% T4 B/ G; p if PartsNo=m and no<=PartsNo+PartsTable[2,i] then $ R! c. q8 V% A
@._From:=PartsTable[5,i];
1 a v0 V, [; u( ~2 X @._To:=PartsTable[6,i];
: j( \9 I% x4 a$ T" @$ [* l( O if no=PartsNo+PartsTable[2,i] then
1 O2 j) x# N1 J2 M+ I PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)% h) D. P5 `" m* p: S
" ~% {- M) a% y. `4 Z$ ^
end;8 ?: v' H a o9 A8 a7 x& ?, h* y, ~
i:=PartsTable.YDim+1;
9 |6 n0 b% O, A" G5 r' u end;
* n8 Q2 A7 ]2 r6 T! b m:=m+PartsTable[2,i];
* S9 Q5 o% a$ O; C2 c6 N next;
! K7 f/ I0 X, \* e. K+ \, \ . ]' a1 i) n4 G- m3 L
Buf:=str_to_obj(sprint("BF",@._From));
4 j5 J' ~8 i2 ]; P @.move(Buf);, e0 E8 c. u* v: ~+ G4 s
end; |