这个例子昨天正好看了,话说那本书的例子都很不错~
% E. U$ G& L0 R' T不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。8 s4 {& S' V5 b6 e7 i# R# K% u& W2 j
is
1 }; v% o, {3 K5 c: p7 O i,no,m:integer; --定义整型- X- Q. [- p5 f0 M
Buf:object; --定义object
$ o9 V, b7 Z2 a# }: `5 Udo
9 S, ]( q- N7 \, ?: m m:=0;7 r* i/ `0 q& X
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外), g* ]) h0 }% @2 b/ n! A. n" w
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
- ]8 _) D: G$ n! C9 C' I. g if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
8 p' W1 ]/ A8 i- q8 I @._From:=PartsTable[5,i]; + p* B. W" F" P5 _0 |
@._To:=PartsTable[6,i];, k0 s( w5 y9 p* U. I! c
if no=PartsNo+PartsTable[2,i] then
6 h' l9 b, A% N& x PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
& ?0 ]7 C! N& h8 {1 N, o% r
7 R, k0 U& A1 e# I6 o/ {8 y end;* G" H4 ]4 j4 D
i:=PartsTable.YDim+1;
/ [" M/ ^* b! S2 x: M6 u( U7 I end;
! O/ W/ J' P" _ m:=m+PartsTable[2,i];
2 l5 ~ O* E4 M0 ^9 P' p, f2 V next;' o' d# x3 r3 F3 l5 N% ]
% c a0 w- w9 {2 o3 r8 y8 `0 ` Buf:=str_to_obj(sprint("BF",@._From));& A, Y1 z( o V
@.move(Buf);
/ F; I) f, u- \. Aend; |