|
안낭하세요. locke님! ^^
김진호님과 locke님의 의견을 종합하여 문제는 해결되었는데요...
궁금한 점이 하나 생겼습니다.
ⓐ번: SendStr = "\x02";
SendStr += (char)Len; //1
SendStr += Str;
SendStr += (char)ETX; //2
ⓑ번: SendStr = "\x02" + (char)Len + Strn + (char)ETX;;
위의 ⓐ번과 ⓑ번의 결과값은 다르던데요..
혹시 ⓐ번은 각 line을 수행할때마다 뒤에 NULL이 붙고
ⓑ번은 중간에 NULL이 붙지 않아서 인가요?
만약 그렇다면 ⓑ번의 중간에 NULL값들을 어떻게 추가 할 수 있을까요?
String((char)Len) 과 같은 방법 뿐일까요?
----------------------------------
모두 즐거운 하루 되세요.
아~자~~!
locke 님이 쓰신 글 :
: 아래처럼 하세요.
:
: #define ETX 0x03
:
: AnsiString SendStr, Str;
: BYTE Len=2;
:
: Str = "AB";
: SendStr = "\x02";
: SendStr += (char)Len; //1
: SendStr += Str;
: SendStr += (char)ETX; //2
:
: 확인방법은 Memo1 하나 올려놓고
:
: for(int i = 1; i <= SendStr.Length(); i++) Memo1->Lines->Add(IntToStr(i) + "=" + IntToHex(SendStr[i], 8));
:
: 원하시는대로 들어갔는지 확인해보세요. 아래는 그 리턴값입니다.
:
: 1=00000002
: 2=00000002 <-길이
: 3=00000041
: 4=00000042
: 5=00000003 <-ETX
:
: -locke
:
: 아~자~~! 님이 쓰신 글 :
: : ///*******************************************///
: : #define ETX 0x03
: :
: : AnsiString SendStr, Str;
: : BYTE Len=2;
: :
: : Str = "AB";
: : SendStr = "\x02" + ①번 + Str + ②번;
: : ///*******************************************///
: :
: : 위와 같은 소스가 있다고 가정할때,
: : SendStr의 Data 값이 다음과 같이 되도록 하고 싶습니다.
: : [0] = 0x02
: : [1] = 0x02 // Len (①번)
: : [2] = 0x41 // A
: : [3] = 0x42 // B
: : [4] = 0x03 // ETX (②번)
: :
: : ①번 에는 Len 값을 넣고 싶고요.
: : ②번 에는 ETX 값을 넣고 싶은데요.
: : 어떻게 해야 하나요?
: : 많은 가르침 부탁합니다.
: :
: : -----------------------
: : 모두 즐거운 하루 되세요.
: : 아~자~~!
|