안영제님께서 조언해주신대로 한번 해보고 또 의문 나는점이 생기면 여쭤보겠습니다.
그럼 좋은 하루 되세요 ^^
civilian,안영제 님이 쓰신 글 :
: procedure TfrmMain.comport1ReceiveData(Sender: TObject; DataPtr: Pointer;
: DataSize: Cardinal);
: var
: tmp:string;
: begin
: SetLength(tmp, DataSize);
: Move(DataPtr^, tmp[1], DataSize);
: G_data:=G_data+tmp; //전역변수에 이어 붙이기
:
: if (ord(G_data[length(G_data)-1])=$0D) and (ord(G_data[length(G_data)])=$0A) then
: G_data:=''; //전역변수 클리어
: end;
:
: 이렇게 한번 해보시죠
:
: 04학번 님이 쓰신 글 :
: : procedure TfrmMain.comport1ReceiveData(Sender: TObject; DataPtr: Pointer;
: : DataSize: Cardinal);
: : var
: : tmp:string;
: : begin
: : tmp := stringOfChar(' ', DataSize );
: : move( DataPtr^, pchar(tmp)^, DataSize );
: : G_data:=G_data+tmp; //전역변수에 이어 붙이기
: :
: : if (ord(G_data[length(G_data)-1])=$0D) and (ord(G_data[length(G_data)])=$0A) then
: : G_data:=''; //전역변수 클리어
: :
: : end;
: :
: : 이렇게 comport를 통해서 데이터를 받았습니다. 처음엔 메모에 이 데이터들이 맞게 오나 보려고 뿌려보았습니다. 그런데 계속 켜놓으니 윈도우 작업관리자의 프로세스 메모리가 계속 늘어 나는 것입니다. 그래서 메모장 때문에 그러려니 하고 메모장 뿌리는 부분를 삭제 했습니다. 그런데도 동일한 증상입니다 ㅜ
: : 전역변수를 클리어 했는데 과연 왜그럴까요?
|