这个例子昨天正好看了,话说那本书的例子都很不错~* v7 Q5 B8 ~; _2 n5 f, d0 f, X" g; G
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。% v8 U9 f" X& D
is# ~) }" ~; o2 N3 T; E1 }
i,no,m:integer; --定义整型( x6 d2 {: {6 c& ~" N9 ]1 |4 h) C- F
Buf:object; --定义object1 c+ r6 N* k' a. f) _) `
do& x* `% i$ x1 f
m:=0;
* G! S8 ^! p G5 E. X/ }" l no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)+ C }6 i8 b/ I+ ]! Z L
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
C x- L- |* d$ H3 F. F( u; M if PartsNo=m and no<=PartsNo+PartsTable[2,i] then , E( D i0 ?# M+ _+ H W
@._From:=PartsTable[5,i];
$ }3 v5 d4 ?2 E, k @._To:=PartsTable[6,i];
/ \, h4 h& a9 N" {" z6 T( D if no=PartsNo+PartsTable[2,i] then
9 C0 j# F. @* G4 k/ Z/ e PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
: w- V! B$ {: _$ h8 m
: W9 l, W' O m; P end;
$ J! z R: I, ^) C i:=PartsTable.YDim+1;+ G0 @" J/ M U: @
end; P; n% `2 c* i" S! ]; D' K
m:=m+PartsTable[2,i];& b9 _1 X9 Z ] s( t0 u" e0 N: U
next;
8 u' i; a3 ^7 R$ V7 d
' O* A! {4 `$ Z6 G. J8 Y Buf:=str_to_obj(sprint("BF",@._From));
% ]. B; d8 a1 Y @.move(Buf);2 l6 P$ {% y1 H
end; |