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
[64094] 문자열 아스키 변환...
止水 [ygrygr] 1911 읽음    2011-04-07 11:08
BCB6 으로 현재 시리얼 통신을 하기 위해
CPort 264를 사용해서 통신구현을 해 두었습니다.

하지만 통신을 통해 넘겨주는 형식이 UNICODE?(ASCII? 였나...)로 되어 있어

약간의 문제로 고민을 하고 있습니다.

간단한 컨트롤러와 통신을 하는 것인데...
기본적으로 ON 하는 데이터가
"02 31 31 4F 4E 03" // STX 1 1 O N EOT (보기 편하게 한칸씩 띄워 두었습니다.)- 컨트롤러 1번 채널 ON
라고 되어 있습니다.

ON/OFF 를 제외하고 실 데이터 값을 넘겨 주어야 하는데

AnsiString 형의 문자열 데이타를 UNICODE 로 변환 후,
변환된 채로 다시 AnsiString 에 넣고 싶지만 어떻게 해야 할까요(좌절)

이리 뒤적 저리 뒤적 해서
찾아본 결과

WideString s;
1.  s = "안녕하세요"; // 문제 없지만 권장하지 않습니다. ANSI->UTF16 코드변환이 자동으로 이루어지긴 하지만
                           // 다른 언어환경의 OS에서 실행하면 s에 엉뚱한 값이 들어가겠죠.
2.  s = L"안녕하세요"; // 심각하게 문제있습니다. WideString의 = 연산자는 BSTR 타입을 요구하기 때문입니다.
3.  s = WideString(L"안녕하세요);  //  안전한 방법이지만 메모리 복사가 이루어집니다.
4.  WideString s1 = L"안녕하세요";  // 가장 안전하고 성능에도 영향이 없습니다.
5.  WideString s2(L"안녕하세요");  // 4번과 동일하죠. 표현만 다를 뿐.

-peperu 님의 글 中-
위와 같은 답변이 있어서 문자 말고 혹시 변수도 되나 해봤지만
와치로 확인해 봤을 때 WideString 와 AnsiString 가 같은 값(AnsiString 값)을 가지는 것을 확인하였습니다.

트랙바에서 데이터를 받아서 변환하고 싶은데, 0~255, 즉 000~255 값이라 좀 지저분합니다....(랄까 실력부족)

void __fastcall TForm1::CH1Change(TObject *Sender)
{
    num_ch1 = CH1->Position;
    if(num_ch1<10){
    ch_num1->Text = "00"+IntToStr(num_ch1);
    }else if(num_ch1<100){
    ch_num1->Text = "0"+IntToStr(num_ch1);
    }else if(100<=num_ch1){
    ch_num1->Text = IntToStr(num_ch1);}
    change = "1"+ch_num1->Text;//change 가 AnsiString 변수입니다.
}

이걸 어찌해야 UNICODE 로 바꿀수 있을까요...orz
몸 상태가 메롱이라 머리도 잘 안돌아가네요 ㅠ(질문 하는데만 25분째...)

....아니면 배열로 받아서 하나씩 비교해서 붙여넣어야 하는 걸까요....
(어차피 문자는 상관없고 숫자만 비교하면 되니까....(...))
배열로 받는다면 배열 안에 하나씩 집어 넣는것도 문제가....(공부해!)

......이상 질문이었습니....다.

+ -

관련 글 리스트
64094 문자열 아스키 변환... 止水 1911 2011/04/07
64137     Re:문자열 아스키가 아니라 유니코드 변환...(자답????)- 수정 止水 1605 2011/04/12
64095     Re:문자열 아스키 변환... 김상구.패패루 1531 2011/04/07
64106         Re:Re:문자열 아스키 변환... 止水 2168 2011/04/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.