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
[74643] Re:안녕하세요. 질문이 있습니다.
정성훈.해미 [sage5nor] 709 읽음    2017-11-03 15:20
원데이터가 1바이트단위의 숫자배열이라면
파싱없이 그냥 단순 변환만으로 간단하게 문자열 처리가 되겠지만

원하시는 것처럼 원데이터가 문자로표시된 숫자를 파싱해주는 함수는 없습니다.

공백으로 구분하여 나눈 후 그문자를 숫자로 변환하고
그것을 char에 넣는 지금의 방법을 그대도 사용하세요.

대신 일일이 합칠 필요는 없습니다.
char배열에 순서대로 넣은 후 그걸 String으로 변환하면 끝납니다.

예)

UnicodeString PasingData;
TStringList *lst = new TStringList;

// 공백으로 구분해서 문자열을 나눔
lst->Delimiter = ' ';
lst->DelimitedText = "60  63  120  109  108  32  118  101  114  115  105  111  110  61  34  49  46";

// 변환할 숫자 개수+1만큼 char배열을 만든다,
char *Data = new char[lst->Count+1];

// 문자열숫자를 변환
for(int i=0; i<lst->Count; i++)    {
    Data[i] = lst->Strings[i].ToIntDef(0);
}
Data[lst->Count] = 0x00;

// char문자열을 String로 변환
PasingData = UnicodeString(Data);    

// 메모리 삭제
delete Data;
delete lst;


PasingData 가 변환된 결과 문자열입니다.


이걸 함수로 만들어 쓰시면 될거 같은데요.

UnicodeString DecStr2Str(UnicodeString ADecStr)
{
    UnicodeString PasingData;
    TStringList *lst = new TStringList;

    lst->Delimiter = ' ';
    lst->DelimitedText = ADecStr;

    char *Data = new char[lst->Count+1];

    for(int i=0; i<lst->Count; i++)    {
        Data[i] = lst->Strings[i].ToIntDef(0);
    }
    Data[lst->Count] = 0x00;

    PasingData = UnicodeString(Data);    

    delete Data;
    delete lst;

    return PasingData;
}




SHAWN 님이 쓰신 글 :
: 안녕하세요.
:
: 아래와 같은 코드가 있습니다.
:
: ex)
: 60  63  120  109  108  32  118  101  114  115  105  111  110  61  34  49  46
: <    ?     x      m     l    SP   v     e      r      s      I     o      n     =    "    1    .     
:
: 이것은 십진수로 저는 각 숫자를 읽어들여 char로 바꾸고 그런다음 char를 합쳐서 문자열을 만듭니다.
:
: 그래서 완성한 데이터를 읽어서 분석을 하는데.
:
: 문득 궁금한점이 생겨서.... 위와같은 십진수 코드를 제가 현재 작업하는 것처럼 하나하나 읽어서
:
: char로 바꾸고 그런다음 하나하나 더해서 문자열을 만드는게 아닌,
:
: 위에것을 한번에 처리하는 윈도우 함수나 라이브러리가 있는지 궁금해서 글을 올립니다.
:
: 이상 감사합니다.

+ -

관련 글 리스트
74642 안녕하세요. 질문이 있습니다. SHAWN 745 2017/11/03
74643     Re:안녕하세요. 질문이 있습니다. 정성훈.해미 709 2017/11/03
74644         Re:Re:안녕하세요. 질문이 있습니다. SHAWN 705 2017/11/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.