Q&A

  • 10진수로 변환은 어떻게 하는가요?
string #$A에서 #를 떼내어 $A로 하고 싶은데 어떻게 바꾸나요?

str:= '#$A';
num := strtoint(str);
3  COMMENTS
  • Profile
    델티즌 2005.02.21 01:30
    현재 값에서 #을 삭제하시려면, delete함수로 첫번째 문자만 삭제하시면 됩니다.


  • Profile
    윤수아 2005.02.20 07:50


    var
      Str : String;
      Byt : Byte;
    begin
      Str  := #$0A;
      Byt := Byte(Str[1]);            //Byt 에는 $10이 들어가게 됩니다.
      Caption := IntToStr(Byte); //Caption에는 '10' 이 찍히게 됩니다.
    end;

    님이 하신대로 StrToInt로 하시면 안됩니다. (지금과 같은 예제에서는 오류가 나지만 오류가 나지 않는다해도 님이 원하시는 결과가 안됩니다)
    가령 Str := #$31;
    이상태에서 num := StrToInt(Str); 을 하게 되면 num은 1이라는 값이 들어값니다.
    왜냐하면 #$31 = '1' 이기때문입니다. '1'을 strToInt를 취하게 되면 1 즉 $01이 됩니다..(정확히 integer형으로 나타내시려면 $00000001이 되죠) 님이 원하시는 $31을 넣으시려면 Byte로 형변환만 해주시면 됩니다.
    단, Byte로 형변환을 시키기 위해서는 1Byte의 데이타형이라야 합니다..
    Byte('asdf')이런 것은 안됩니다. 'asdf'는 스트링이고 총 4바이트니깐요...

    나타내자면 $00000001
  • Profile
    신철우 2005.02.21 18:14
    거듭 감사합니다.