这个例子昨天正好看了,话说那本书的例子都很不错~
* N E' F3 P/ {/ r7 R0 m不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
% a" ^$ Y3 v8 a& t/ P- t2 d* Y% Xis
5 y" X: s# L& v2 Q- B5 t i,no,m:integer; --定义整型
P- v. m; O9 s: M$ Z" ?: G Buf:object; --定义object
/ M; Q5 [, D6 |3 p: g" ndo, D8 H- d/ t6 J: Z9 G0 u) d4 v
m:=0;
: Z; X+ q* R7 v" W% c no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
1 F' L" P5 T2 U6 s3 ]0 I5 `7 e/ m for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
5 g6 v& k q+ c if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 7 \$ ]. q7 z" N& P
@._From:=PartsTable[5,i];
4 b M# |6 w- [ @._To:=PartsTable[6,i];
0 X# k( n [, u& L" R, ? if no=PartsNo+PartsTable[2,i] then ! G; A+ k! R1 d) W
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
# p2 U( d9 Y4 V3 t
' R2 [2 O% y/ k$ ?+ a end;
: r" b6 N! s2 v6 p i:=PartsTable.YDim+1;% M8 w$ D/ R) `! [( P* w- Q) `
end;% @9 f" Y/ u C- z0 T( O
m:=m+PartsTable[2,i];
+ Y& c2 e1 Z! B* T next;
7 W9 L4 E2 C/ w* C, U9 v
. Y* m6 t" u" d; u Buf:=str_to_obj(sprint("BF",@._From));
9 k. U3 m5 K/ a8 T @.move(Buf);
( Q3 e3 s: `7 d; Z Q% }end; |