Q&A

  • 문자열을 byte형 배열에 저장하는..
델파이를 접한지 얼마되지 않는 초보입니다.

시작부터 막혀서 혼자 삽질하다가 아무래도 여쭙고 해결책을 빠를거 같아서 이렇게 들어와서

질문을 남깁니다.


Edit 입력을 받은 String을 byte 형식의 배열로 저장하려 합니다.

변환된 입력값들을 순서대로 전송하려고 하고요...

StrToHex 함수는 String형이 나오더군요 ㅜㅜ

며칠째 이문제 하나로 삽질만 하는 중입니다.

소스는 그중 일부만 올립니다.

2자리 숫자만 입력으로 받을 것이고 수신 측에서는 순서대로 받게 되는 거죠..

도와주십쇼 ㅜㅜ


<!--CodeS-->
procedure TForm1.Button1Click(Sender: TObject);
var

  TempBuf:array[0..5] of byte;
  StringTemp: String ;

begin

  for i:=1 to 5 do
        
  StringTemp:= Edit1.Text;
  TempBuf[i]:= StrToHex(StringTemp);  <- 문자열이라 배열에 안들어가네요

end;
        
end;

<!--CodeS-->
3  COMMENTS
  • Profile
    김대식 2005.09.30 22:23



    이렇게 해보세요..

    <!--CodeS-->

    procedure TForm1.Button1Click(Sender: TObject);
    var

      TempBuf:array[1..5] of byte;
      StringTemp: String ;
      i : integer;
    begin
      StringTemp:= Edit1.Text;
      
      for i:=1 to 5 do
        TempBuf[i]:= byte(StringTemp[i]);  //<- 문자열이라 배열에 안들어가네요

    end;
    <!--CodeE-->

  • Profile
    이향복 2005.10.01 21:49
    답변 감사합니다.
    그런데 말씀하시대로 하니 에러가 발생하더라구요
    그러다 이렇게 하니 해결이 되네요..^^;;


    <!--CodeS-->
    TempBuf[i]:= StrToInt('$'+(Edit6.Text));
    <!--CodeE-->


  • Profile
    김대식 2005.10.02 00:33
    에러 날곳이 없는데 이상하군요.

    TempBuf[i]:= StrToInt('$'+(Edit6.Text));
    이건 단지 입력받은 헥사값을 정수로 바꾸는 코드인데..
    tempbuf을 배열로 선언할 필요도 없고, for문을 돌릴 필요도 없을것 같은데요.
    질문하신 내용과 의도하신 결과가  다른것 같네요.
    아무든 해결하셨다니 다행이네요^^