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
[13636] Re:[질문] Move함수의 이상한 동작...??
Lyn [tohnokanna] 1686 읽음    2011-03-24 11:15
2009~Xe라면 Char 이 2byte 입니다.

땅주인 님이 쓰신 글 :
: Move함수로 값을 복사를 했는데.. 값이 영 이상합니다.
: 뭐가 잘못되었는 지?
:
:
: procedure TForm2.Button1Click(Sender: TObject);
: var
:   Buff        : array [0..50] of Byte;
:   TimeInfo    : array [0..15] of char;
:   PhoneNumber : array [0..15] of char;
:   sTimeInfo   : AnsiString;
:   sPhoneNumber: AnsiString;
:   iSize       : Integer;
:   iSize2      : Integer;
:   iSize3      : Integer;
: begin
:   FillChar(Buff, Sizeof(Buff), #0);
:   FillChar(TimeInfo, Sizeof(TimeInfo), #0);
:   FillChar(PhoneNumber, Sizeof(PhoneNumber), #0);
: 
: 	Buff[ 0] := $61;  //a
: 	Buff[ 1] := $62;  //b
: 	Buff[ 2] := $63;  //c
: 	Buff[ 3] := $64;  //d
: 	Buff[ 4] := $65;  //e
: 	Buff[ 5] := $66;  //f
: 	Buff[ 6] := $67;  //g
: 	Buff[ 7] := $68;  //h
:         ....//중략
: 
:   iSize   := Sizeof(Buff);
:   iSize2  := Sizeof(TimeInfo);     // 32나오는 데 뭥미? 유니코드로 잡은것인가요?
:   iSize3  := Sizeof(PhoneNumber);  //32나오는데 뭥미? 
: 
:   move(Buff[3], TimeInfo, iSize2);    // 값을 복사하는데..전혀 엉뚱한 값을 합니다. 2byte씩 처리하는 것 같구요.
:   move(Buff[20], PhoneNumber, iSize3);
: 

:
: 최종적으로는 Byte된 배열의 값을 잘라서 AnsiString에 넣으려고 하는데..중간 코드로 Byte배열의 값을
: Char 배열에다가 복사를 하려는 데 이상한 동작을 하는 데요.. 유니코드 같기도 하고..2byte씩 처리를 하니..
:
: 문제가 어딘 지..좀 알려주시면 감사하겠습니다..
:
: 추가: TimeInfo, PhoneNumber배열이 데이터를 2byte단위로 잘라서 처리를 해서 이런 증상이 나오네요.
: char로 선언했는데 왜 이러는 것인 지요?
:
: 그리고, Byte로 배열로 되어 있는 데이터에서 부분 부분 잘라서 AnsiString으로 만들고 싶은데..
: 좋은 방법이 있는 지요?

+ -

관련 글 리스트
13635 [질문] Move함수의 이상한 동작...?? 땅주인 2107 2011/03/24
13636     Re:[질문] Move함수의 이상한 동작...?? Lyn 1686 2011/03/24
13637         Re:Re:[질문] Move함수의 이상한 동작...?? 그럼 Byte=>Char=>AnsiString 어떻게? 땅주인 1781 2011/03/24
13638             Re:Re:Re:[질문] Move함수의 이상한 동작...?? 그럼 Byte=>Char=>AnsiString 어떻게? kylix 1957 2011/03/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.