|
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
:
|