Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[15526] Re:Record를 Byte형으로 변환하는 경우 데이터 구조에 대한 질문
안영제 [civilian] 2189 읽음    2015-06-17 12:58
레코드의 크기를 8의 배수로 만들기 위해 끼워넣는 값입니다.

: Type
: Tmyrecord = record
:     Var1: string[20];  => 1 + 20
:     Var2: string[20];  => 1 + 20
:     Var3: Integer;     => 4
: end;

총 46 Byte인데 8의 배수가 안되므로 2만큼 null(0x00)을 넣어 48 Byte로 만든 것이죠.
이걸 방지하려면

TMyRecord = packed record
end;

이렇게 선언해서 쓰면 됩니다.

첫눈 님이 쓰신 글 :
: 레코드 선언은 아래와 같습니다.
:
: Type
: Tmyrecord = record
:     Var1: string[20];
:     Var2: string[20];
:     Var3: Integer;
: end;
: 
   
:
: 이렇게 선언하고 다음과 같이 값을 넣었습니다.
:
: Procedure 
: Var
:     REC : Tmyrecord;
:     Buffer :  TIdBytes;
: Begin
:     REC.Var1                  := '한글';
:     REC.Var2                  := '잘보여?';
:     REC.Var3                  := MaxInt;
:     Buffer                    := RawToBytes(REC, RECSizeInt);
: End;
: 

:
: 이렇게 값을 넣고 Byte형으로 변환을 하면 다음은 구조를 가집니다.
: 0x04C7D1B1DB0000000000000000000000000000000007C0DFBAB8BFA93F000000000000000000000000000000FFFFFF7F
:
: 이 데이터 구조를 살펴 보면
:
: 0x : 데이터가 Hex값임
: 04 : REC.Var1가 4Byte임
: C7D1B1DB00000000000000000000000000000000 : '한글'
: 07 : REC.Var1가 7Byte임
: C0DFBAB8BFA93F00000000000000000000000000 : '잘보여?'
: 0000 : 이 값이 무슨 값인지 모르겠습니다.
: FFFFFF7F : MaxInt
:
: 특히 '0000' 이 값은 레코드 구조에 따라 있을때도 있고 없을때도 있고 도데체 뭔지 모르겠습니다.
:
: 이 값이 어떤 값인지 알려주시면 감사하겠습니다.

+ -

관련 글 리스트
15524 Record를 Byte형으로 변환하는 경우 데이터 구조에 대한 질문 첫눈 1845 2015/06/17
15526     Re:Record를 Byte형으로 변환하는 경우 데이터 구조에 대한 질문 안영제 2189 2015/06/17
15525     Re:Record를 Byte형으로 변환하는 경우 데이터 구조에 대한 질문 kylix 2068 2015/06/17
15528         Re:Re:답변주신 두 분께 감사드리며 한 가지 더 질문드립니다. 첫눈 1938 2015/06/17
15529             Re:Re:Re:답변주신 두 분께 감사드리며 한 가지 더 질문드립니다. 안영제 1932 2015/06/17
15530                 Re:Re:Re:Re:네 감사합니다. 첫눈 1896 2015/06/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.