|
강영준 님이 쓰신 글 :
: 아래 소스에서 P1Readvalue 에 스트링 값으로 "00E0"이 들어 있을때..
:
: Ponoffchk함수로 넘어 갈경우 에러가 생기드라구요.. "E"를 보낼수 없다그러든거 같든데.
:
: 숫자로만 "0020" 된건 아무 문제 없이 함수를 호출 할수 있는데..
:
: 도대체.. 이넘을 어떻게 해결을 해야 할지 모르겠네요.
:
: AnsiString 이란넘 편할땐 무지 편하드니만.
:
: char *ch[5] 이런걸 다른 함수에다 넘길려면.. 함수를 어떻게 정의해줘야 하나요?
:
:
: void __fastcall TForm1::ComPort1RxChar(TObject *Sender, int Count)
: {
: AnsiString Str;
:
: ComPort1->ReadStr(Str,Count);
:
: if(Count != 7) {
: Str1 = Str1 + Str;
: if(Count != 7 && Str.SubString(Count,1) == ETX) {
: P1Readvalue = (Str1.SubString(11,4));
: P2Readvalue = (Str1.SubString(17,4));
: P3Readvalue = (Str1.SubString(23,4));
: Str1="";
: Ponoffchk(1,P1Readvalue);
: // Memo3->Lines->Add(P1Readvalue);
: Ponoffchk(2,P2Readvalue);
: // Memo3->Lines->Add(P2Readvalue);
: Ponoffchk(3,P3Readvalue);
: // Memo3->Lines->Add(P3Readvalue);
: }
: }
: Memo1->Lines->Add(Str);
: Memo1->Lines->Add(Count);
: }
:
: void __fastcall TForm1::Ponoffchk(int i, AnsiString PRead)
: {
: int Temp1,Temp2,Temp3,Temp4;
:
: Memo2->Lines->Add(PRead);
: Temp1 = StrToInt(PRead.SubString(1,1));
: Binarychk(i,12,Temp1);
: Temp2 =StrToInt(PRead.SubString(2,1));
: Binarychk(i,8,Temp2);
: Temp3 =StrToInt(PRead.SubString(3,1));
: Binarychk(i,4,Temp3);
: Temp4 =StrToInt(PRead.SubString(4,1));
: Binarychk(i,0,Temp4);
:
: }
잡았네요... 문제는 이 부분에서 나는게 아니드라구요.
Binarychk라는 내가 만든 함수에서 ..
if(Temp1 == 'A') 라고 사용을 했었는데.. 인식을 못하드라구요.
물론 에러나면 이곧에 멈춘게 아니라 이게 잘못된건진 몰랐죠..
문자 하나라고 생각을 했으니깐.. 그래서 "A" 로 바꿨드니.. 사라지드군요..
큰따옴표로 해야 하드군요..나참.. 이거 때문에.. 몇시간을 허비 했네요..
AnsiString은 잘넘어 가드군요.. ㅎㅎ
|