|
감사합니다. 많은 도움 되었습니다.
도움말을 자주 읽어봐야겠군요
강재호.만해 님이 쓰신 글 :
: int __fastcall Pos(const AnsiString& subStr) const;
:
: Description
:
: Pos returns the index in the AnsiString at which the substring subStr begins, where 1 is the index of the first character, 2 is the index of the second character, and so on. If the substring is not contained in the AnsiString, Pos returns 0.
:
: AnsiString __fastcall SubString(int index, int count) const;
:
: Description
:
: SubString returns a new AnsiString that is a substring of this AnsiString. The substring contains count characters beginning at index.
:
: 위에꺼는 Pos 함수에 대한 도움말이고요,
:
: 밑에껀 SubString에 대한 도움말입니다.
:
: AnsiString Text = "192.168.0.1";
:
: AnsiString Head = Text.SubString(1,Text.Pos("."));
: -> 이때 Head 의 값은 "192." 인데요 Pos에서는 Index를 리턴해 주기 때문에 "."이 있는곳의 인덱스를 넘깁니다.
: 인덱스라고 하면 4가 되는데 1에서부터 4글자를 가져오기 떄문에 "192."을 가져오는것입니다.
: 그렇지만 SubString(idx, length) 함수에서는 Length를 받기 때문에 index에서 1을 빼야 합니다.
:
: AnsiString Sub = Text.SubString(1,Text.Pos("3"));
: -> 이때는 Pos("3")의 결과값이 0이 되고요.
: SubString(1,0)이 되므로 문자열에서 아무런 값을 가지지 않습니다.
:
:
: 번외편 님이 쓰신 글 :
: : Edit5->Text = Text.SubString(1,Text.Pos("2"));
: : 이렇게 해서 192만 빼왔습니다. 그런데 이부분에서
: : Edit5->Text = Text.SubString(1,Text.Pos("."));
: : 을 하면 192. 이 빠지고
: : Edit5->Text = Text.SubString(1,Text.Pos("3"));
: : 을 하면 192.168.10.1 이 전부 빠지는데..
: :
: : 어떤 규칙으로 이렇게 빠지는건지를 잘 모르겠습니다.
: : 좀더 자세히 알려주셨으면 감사하겠습니다.
: :
: : 강재호.만해 님이 쓰신 글 :
: : : 번외편 님이 쓰신 글 :
: : : : 현재 상태가
: : : : Label1->Capture=IP_List->Strings[ 0 ];
: : : : 이렇게 했을때 Label1에 192.168.10.1이 뜨게 됩니다
: : : :
: : : : 그런데 이중에 제가 필요한 부분은 192 <-- 이부분만 필요한데
: : : : 어떻게 해야지 이부분만을 빼올수가 있는지 알고 싶습니다.
: : : : Label2->Capture=IP_List->Label1->Capture[??????];
: : : : 이런식으로 빼야 할까요?
: : :
: : : AnsiString 형의 부과 함수들 중에서 SubString() 함수와 Pos() 함수를 이용하시면 원하는 걸 해결 할수 있을것 같은데요.
: : :
: : : AnsiString Text = IP_List->Strings[0];
: : : Text = Text.SubString(1,Text.Pos("."));
: : :
: : : 이런식으로 하시면 가능할것 같습니다.
: : :
: : : 더 자세한 내용은 헬프 참고 하세요 ^^
|