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

C++빌더 Q&A
C++Builder Programming Q&A
[67826] [질문]Comport 데이터 타입에 따른 수신관련 질문입니다.
얌냠 [akein] 1122 읽음    2012-07-27 11:41
안녕하세요
ComPort Readstr을 이용해서 DSP에서 데이터를 받아오려고 하는데 데이터의 타입에 따라서 수신되는 데이터값이 바뀌는 문제가 발생하여 이렇게 질문드립니다.
먼저 수신부의 코드는 이렇습니다.

==========================================
  UnicodeString strBuff;

  ComPortData->ReadStr(strBuff, Count);

  strMonBuff = strMonBuff + strBuff;
===========================================
ComportRxChar 함수내에 작성된 코드입니다. 이 코드는 기존에 사용하던 다른 프로그램에서 그대로 가져온 것인데, 기존의 프로그램의 경우 수신될 데이터의 변수인 strBuff가 AnsiString으로 선언되었으나, 다른 프로그램에 가져온뒤에는 strBuff가 UnicodeString이어야만 컴파일이 되어 UnicodeString으로 바꾸어서 실행해보았더니 첫데이터는 제대로 들어오나 그 뒤의 데이터는 들어와야하는 값과 다른 값들이 수신되는 것을 확인하였습니다.

결과를 예를들어 말씀드리면 AnsiString으로 선언된 프로그램 실행시 수신된 데이터는 2, 1, 123, 1, 16, -109, 3, -100, 54와 같이 수신되는 반면 데이터 변수가 UnicodeString으로 선언된 프로그램 실행시 수신되는 데이터는 2, 31489, 4097, 1005, 24759, 117, 102, 102, 91 로 나오는 식입니다. 올바른 데이터의 경우 처음 4개의 데이터는 2, 1, 123, 1로 나와야 합니다. 데이터 변수가 UnicodeString으로 선언되었을 경우 전혀 다른값이 나와 어떻게 처리를 해야 할지 모르겠습니다. UnicodeString으로 출력되는 값에 2, 1, 123, 1과 같은 정보가 들어있어 변환이 가능한 것인지 아니면 처음부터 AnsiString으로 받아야 할 데이터를 UnicodeString으로 받은데서부터 문제가 생긴건지..답변좀 부탁드리겠습니다. 두서없이 질문해서 이해가 가지않는 부분이 있으실것 같은데 그부분은 댓글로 알려주시면 다시 설명해드리겠습니다. 그럼 부탁드리겠습니다. 감사합니다.

+ -

관련 글 리스트
67826 [질문]Comport 데이터 타입에 따른 수신관련 질문입니다. 얌냠 1122 2012/07/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.