这个例子昨天正好看了,话说那本书的例子都很不错~: P! V0 k& n! P
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
0 A! ^! J* l- o, }( Sis
/ c6 \7 p J6 G" p; _. y i,no,m:integer; --定义整型; y/ h8 \ c/ m, E
Buf:object; --定义object
6 M2 n/ y7 Q2 p' g! Mdo
& j( \ m; m) T* p. {6 g; i' e m:=0;/ Q% C1 p- ~$ H+ m) c0 ?. ~& }
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
/ Q" C# U& U4 B5 a# D" T; U for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
, Z, b! }' o) F& [$ B7 Q3 ?' C if PartsNo=m and no<=PartsNo+PartsTable[2,i] then # f0 }) U, O8 m" D- O# _
@._From:=PartsTable[5,i]; ) `$ [: H; V2 s6 z+ B( D2 G# U
@._To:=PartsTable[6,i];% b j- G7 J4 L! B5 [/ v
if no=PartsNo+PartsTable[2,i] then $ j/ ?3 h+ i9 e& p
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)% V- b, A$ x" `! I
1 B' m2 R) W6 |
end;' `* x' G( S) F5 m
i:=PartsTable.YDim+1;
! L/ l' y# C) P end;4 {, N3 f0 H( ^1 S, a; c. X
m:=m+PartsTable[2,i];. i( D) P! x% }! [
next;
' U; [4 M, ~2 Z3 t1 |4 E: I
$ Y5 Q5 R# R6 O! T5 S9 D0 v0 v Buf:=str_to_obj(sprint("BF",@._From));- o: h, b9 F) D4 G* _6 R8 e
@.move(Buf);: q: v5 L0 S4 Z6 U
end; |