这个例子昨天正好看了,话说那本书的例子都很不错~
3 @% d& k% `) n/ @ x不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。( Z X. r, A8 u- U" s( ?( q) W
is
# v% U9 Q, Y+ _# J8 K, J4 }; y i,no,m:integer; --定义整型
! Y/ X# J: A( k$ X2 A Buf:object; --定义object
4 v2 l$ i7 F D: Y7 {% `do
# q+ E* i3 D) M6 x m:=0;/ N( M6 e2 F: H
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
5 M/ l- r) w6 ~ for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
1 u% }2 Q2 V2 A1 T1 ~ if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 3 _) Y8 w, m( ~3 l
@._From:=PartsTable[5,i];
$ H/ i3 v( J# m @._To:=PartsTable[6,i];8 ]$ y9 b; W1 `) h* I; J' z
if no=PartsNo+PartsTable[2,i] then 4 a2 b1 J$ k* _. }% D9 E
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)" z& m6 `9 k4 ~' l `- p: P% M6 g
; D+ E* {/ q$ s0 G' x end;$ p, Z' G! j% s( A- @* Q
i:=PartsTable.YDim+1;% U2 B* c0 T# c2 R6 G- n
end;
' n$ V9 t5 n0 Z" A m:=m+PartsTable[2,i];
+ |! I8 m+ J5 j1 u8 d! L next;
3 } F" ]4 `2 Q3 l; O0 T z9 q& O
8 S% |1 I: d0 G/ u! x$ p8 g5 B Buf:=str_to_obj(sprint("BF",@._From));
; Y$ a# K: C: t" c$ h4 C @.move(Buf);: j% C }, `. f
end; |