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
[40753] 배열에 관한 질문입니다.
다꾸엔젤 [] 765 읽음    2005-06-27 09:42
안녕하세요... 배열에 관한 질문을 드립니다.

아래 소스코드에서 소켓통신으로 GetMsg를 320바이트만큼 읽어들입니다.

디버깅을 했을때 GetMsg값은 아주 잘 받아들여 집니다.

그런데 문제는 GetMsg값이 strReadpacket이라는 AnsiString으로 들어가거나

charSubString이라는 함수를 만들어서(이것은 AnsiString형을 substring 하는 함수와 똑같은 일 char 형에서 합니다.)

사용을 해도 계속해서 값이 변형되어 버립니다.

전자는 strReadpacket의 끝에 계속 쓰레기 값이 들어가며 후자는 중간중간에 아예 값이 변형되어 버립니다.

이런경우에는 어떻게 해야 하는지 조언 부탁드립니다.

그럼 수고 하십시오..

void __fastcall TMainForm::IdTCPServer1Execute(TIdPeerThread *AThread)
{
    AnsiString strReadpacket, strGetTel ;
    char PutMsg[320];
    char GetMsg[320];

    try{
        while (AThread->Connection->Connected() ) {
            AThread->Connection->ReadBuffer(GetMsg,320);
            strReadpacket = GetMsg;   <- 요부분에서 값이 변형됩니다.

            for(int i = 84; i < 104; i++){
                if(strReadpacket.SubString(i, i+1) == " "){
                    strGetTel = strReadpacket.SubString(84,i);

                    break;
                }
            }
            AThread->Connection->WriteBuffer(PutMsg,320);
            free(GetMsg);
         }
    }catch(...){
        AThread->Connection->Disconnect();
        AThread->Data = NULL;
    }
}

+ -

관련 글 리스트
40753 배열에 관한 질문입니다. 다꾸엔젤 765 2005/06/27
40764     Re:배열에 관한 질문입니다. 마술감자 691 2005/06/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.