|
VB에서 그대로 컴파일을 해보았는데,
'형식이 일치하지 않습니다' 라는 에러를 출력하였습니다.
배열이 아니라면 저도 잘은 모르겠네요.. :(
cuperido
초보 님이 쓰신 글 :
: 2번 내용의 답변은 정말 감사합니다.
:
: 1번 내용에 대해서 이상해서 다시 올립니다.
: 예시에서 생략한 내용이 없이..
:
: Dim aaa As String
: Dim bbb As Variant
:
: aaa = bbb(105)
:
: 바로 이렇게 코딩되어있습니다. 중간에 bbb에 어떤 값을 넣는 코딩이 없습니다.
: 그렇다면 저것은 배열을 말하는게 아닌거 같은데.
: 그래서 aaa에 스트링으로 "105" 가 들어가 있을줄 알았는데 "11010011100" 라는 값이 들어가있습니다.
: 가만보니 105의 이진수도 아닌거 같고 -_-;
: 도대체 이게 어떤 코딩일까요?
: 도와주시면 정말 감사하겠습니다.
:
:
: 유영인 Cuperido 님이 쓰신 글 :
: : 1. aaa는 스트링형, bbb는 Variant 형으로 자유자재로 형 변환이 가능한 형식입니다.
: : 빌더 역시 Variant 형을 지원합니다.
: :
: : bbb(105) 는 c에서 bbb[105] 처럼 105번째 배열을 뜻합니다. 그래서, 이진수가 들어갈지
: : 다른 어떤값이 들어갈지는 그 전의 내용에 따라 틀리기 때문에 답변을 드릴수가 없습니다.
: :
: : 빌더에서 아래와 같이 작성을 한다면,
: :
: : Variant vaVariant;
: : int itSum;
: :
: : vaVariant = "5";
: : itSum = vaVariant + 1;
: :
: : ShowMessage(IntToStr(itSum));
: :
: : 문자열 "5"는 자동으로 숫자로 인식되어, 결과 값은 6으로 출력됩니다.
: :
: : 빌더로 변환한다면
: :
: : String aaa;
: : Variant bbb;
: :
: : aaa = bbb[105];
: :
: : 이정도가 될 것 같습니다.
: :
: :
: : 2. Mid는 기본적으로는 C++ 에는 지원하지 않습니다.
: : char *라면, 뒤를 NULL로 잘라주고 &str[2] 등과 같이 읽어내면 가능은 합니다.
: :
: : 빌더의 경우 AnsiString이 SubString이라는 명령을 지원합니다.
: : String.SubString(1, 2) 이런식으로 첫번째 글자부터 2글자를 가져온다. 라는 형식으로
: : 사용할 수 있습니다.
: :
: : Val은 StrToInt 명령입니다. 에러가 나지 않는 것으로 봐서 StrToIntDef(String, 0); 에
: : 더 가까울지도 모르겠습니다. (VB소스에서 특별한 예외 처리가 없다면 StrToIntDef로 해주세요)
: :
: : ccc = Val(Mid("0000000000001234", 1, 2));
: : 이 문장은 "0000000000001234" 이라는 스트링에서 첫번째 글자부터 두글자를,
: : 즉 "00" 을 정수로 변환 합니다. 즉, 그냥 0이 되는 것입니다.
: :
: : 빌더로 변환한다면,
: : ccc = StrToIntDef(String("0000000000001234").SubString(1, 2), 0);
: :
: : 이정도가 될 것 같습니다.
: :
: :
: : cuperido
: :
|