안녕하세요! 담비입니다.
Binary Data File을 읽어서 처리를 하려는 중 해결이 되질 않아서 질문 올립니다.
File을 읽어서 Structure에 저장을 한 후 Pointer의 증가로 Data를 Access할려고
합니다. 그런데 문제는 Structure의 마지막에 있는 Member의 Data는 ASCII문자의
문자열이 저장되어있습니다. 그런데 이 길이가 일정하지 않다는 것입니다.
제가 작성한 Structure는 다음과 같습니다.
typedef struct
{
char FormatString[8];
int NextOffset;
int DataSize;
int CreationDate;
int UnKnown;
char DataName[];
} MyStruct;
위의 Structure를 배열로 생성한 후 Buffer로 사용하여 File을 읽었습니다.
첫 Data를 보았을 경우는 값이 정상이였는데 Pointer를 증가하여 읽어보니
Data가 엉망으로 들어있었습니다. 문제는 Structure의 크기가 24Byte라는
거였습니다.
그러니 Pointer를 증가시켜도 마지막 Member의 크기가 빠진 24byte의 크기로
증가가 일어나더군요. 결국 첫 Data의 DataName이라는 Member가 위치한
Offset에서부터 24byte를 읽어 display를 하더군요.
제가 원하는 것은 Structure를 이용하여 Pointer의 증가만으로 Data를 Access
하고자 합니다. 아직 C/C++에 대한 지식이 부족하여 짧은 머리로는
해결이 힘들군요. 답변 부탁드립니다.
빈자의 한숨 섞인 질문였습니다..
|