|
: num = ComPort1->ReadStr(buf, count);
:
: for(i=0; i<num; i++)
: {
: if(buf[i] == 0x22) 이렇게 첫번째 데이타를 찾아서..
: 그때부터 열개의 데이타를 읽어야 하더군요..--;
:
: 그런데 문제는
:
: if(buf[i] == 0x22) 이렇게 비교가 안되는것 같은데..
: 이거 확실하게 비교하는 코드좀 가르쳐주세요..--;
데이터 읽는 문제는 아래에 답변 드렸고요
위 코드에서 AnsiString은 0부터 인덱싱하면 안됩니다.
첫번째 문자가 buf[1] 이죠.. ( 저도 항상 쓸때마다 헥갈리는 부분입니다. )
그러니 buf[i]를 buf[i+1]로 바꿔야할 듯하네요
비교하는 것은 맞습니다.
혹시 안된다면 (unsinged int)(buf[i+1]) == 0x22 이런식으로
캐스팅 한번 해보시죠
그래도 문제가 해결되지 않는경우
실제 비교할때의 데이터가 중요한거니까 디버깅하면서 찍어보면 확실히 알수있을겁니다.
씨빌더의 디버깅 툴을 사용해보세요
가능하면 디버깅할 필요없는 문제없는 코드를 만드게 좋지만..
문제가 생겨서 헤메고 있다면 당연히 디버깅해서 찾아야죠..
트레이싱 하면서 함수 리턴값, 변수값 등등 찍어보면 금방 해결될 문제를
고민하시는군요..
|