다음과 같이 레코드를 선언하고 초기화를 하려고 하는데 에러가 나네요..
초보자로선 도무지 뭐가 잘못된 것인지 잘 모르겠습니다.
고수님들 어여삐 여기시어 한 지도 부탁드립니다.
type
DirRecord = packed record
rel_name : word;
dbs_only : byte;
rel_loc : byte;
rsvd1 : byte;
nof_tattr: byte;
nof_rattr: byte;
rel_type : byte;
tupl_size: word;
nof_tupl : word;
stt_cksid: word;
end_cksid: word;
dic_ofs : word;
rel_addr : longint;
smpr_id : byte;
rsvd2 : byte;
end;
const
DirTable : Array[1..5] of DirRecord =
( (0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0), <<-- 에러 위치
(1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1),
(2,2,2,2,2, 2,2,2,2,2, 2,2,2,2,2),
(3,3,3,3,3, 3,3,3,3,3, 3,3,3,3,3),
(4,4,4,4,4, 4,4,4,4,4, 4,4,4,4,4)
);
Error Contens : ']' expected but number found
배열의 초기화는 맞았는데 그 안에 들어가는 레코드의 초기화가 잘못됐군요. 쩝~ 델파이에서 불편한 점중의 하나가 레코드초기화시에 필드이름을 써주어야 한다는 거죠.. 뭐 파스칼도 마찬가지지만...
Examples:
type
TPoint = record
X, Y: Single;
end;
TVector = array[0..1] of TPoint;
TMonth = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec);
TDate = record
D: 1..31;
M: TMonth;
Y: 1900..1999;
end;
const
Origin: TPoint = (X: 0.0; Y: 0.0);
Line: TVector = ((X: -3.1; Y: 1.5), (X: 5.8; Y: 3.0));
SomeDay: TDate = (D: 2; M: Dec; Y: 1960);
^^ 항상 즐코하세요...
병아리 wrote:
> 다음과 같이 레코드를 선언하고 초기화를 하려고 하는데 에러가 나네요..
> 초보자로선 도무지 뭐가 잘못된 것인지 잘 모르겠습니다.
> 고수님들 어여삐 여기시어 한 지도 부탁드립니다.
>
> type
> DirRecord = packed record
> rel_name : word;
> dbs_only : byte;
> rel_loc : byte;
> rsvd1 : byte;
> nof_tattr: byte;
> nof_rattr: byte;
> rel_type : byte;
> tupl_size: word;
> nof_tupl : word;
> stt_cksid: word;
> end_cksid: word;
> dic_ofs : word;
> rel_addr : longint;
> smpr_id : byte;
> rsvd2 : byte;
> end;
>
> const
> DirTable : Array[1..5] of DirRecord =
> ( (0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0), <<-- 에러 위치
> (1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1),
> (2,2,2,2,2, 2,2,2,2,2, 2,2,2,2,2),
> (3,3,3,3,3, 3,3,3,3,3, 3,3,3,3,3),
> (4,4,4,4,4, 4,4,4,4,4, 4,4,4,4,4)
> );
>
> Error Contens : ']' expected but number found