Q&A

  • char형 배열에 스트링 넣을 때 왜 에러가 나는지..
안녕하세요?
아래에 질문을 쓰고도 모자라 또 질문을 올립니다.

str : string;
buff : array[1..10] of char    이렇게 변수를 선언하고

buff := str;

이렇게 입력해도 되는 거 아닌가요?
예를 들어 str에 '1234'가 들어있다면
buff[0]:1      buff[1]:2       buff[2]:3        buff[3]:4
이런 식으로 들어가지는 거잖아요
그리고 showmessage(buff); 이런 식으로 배열명만 쳐도 스트링처럼 처리되고요

근데, 왜 여기서 에러가 나죠? array와 string의 type이 impatible하다나 머라나.
암튼 그런 식으로요

================= 소스내용은요 =============
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
  R_str, buff : array[1..100] of char;
  i : integer;
begin
  ComPort.ReadStr(R_str, Count);  // 여기서 에러가 납니다.
  For i := 0 to count-1 do
    if R_str[i] <> #13 then buff[j] := R_str[i]  
    else                                        
      begin
        RichEdit1.Lines.Add('[수신] ' + buff);
        buff := '';  imsi := '';
        j := 0;
      end;
end;
1  COMMENTS
  • Profile
    김종환 2006.11.15 07:17
    클래스로 선언되어 있는 변수는 그 클래스에 자동으로 데이터를 변환하여 할당하는 기능이 있을 경우
    자동으로 할당되어 들어가지만
    char 변수는 기본 변수형으로서, 클래스에서 처리하는 것과 같은 처리는 하지 못합니다.