Q&A

  • 문자열에서 공백을 기준으로 두개로 나누고 싶어요...
궁금한게 있습니다..

좀 가르쳐 주세요~~~



문자열은 가변적이구요...

예를 들어)) 테이블에 "인텔 펜티엄3 650" 라는 데이터 값이 있는데...



이 값을 인텔 뒤의 공백을 기준으로 "인텔"과 "펜티엄3 650" 이렇게 구분하고 싶은데...

좋은 방법 없을까요??



pos라는 함수를 사용해서...

"인텔" 이라는 값을 가져왔는데...

뒤에 있는 "펜티엄3 650" 이라는 값은 어떻게 가져와야 하나요....

휴~~~



빠른 답변 부탁 드립니다!!

2  COMMENTS
  • Profile
    최용일 2000.08.24 04:35
    안녕하세요. 최용일입니다.



    먼저 알고리즘을 잘 생각해보세요. 함수사용법도 다시 한번 상기해보구요. 모르면 델파이



    헬프에 찾아서 어떻게 사용하는가 보구요.



    공백을 기준으로 앞의 값을 구했는데 뒤의 값을 못구한다는 것은 좀 그렇군요.



    생각을 하지 않으면 절대 코딩실력은 늘지 않습니다.



    Pos와 Copy함수를 사용해서 구했다고 생각해보죠..



    Pos를 이용해서 공백의 위치를 구했습니다.



    Copy 함수를 이용해서 처음부터 Pos가 구한값에서 하나를 뺀값(이게 '인텔'이란 문자열의



    크기가 되겠죠)만큼만 복사를 하면 인텔이란 문자열을 구할수 있져~



    같은 이치로 Pos가 구한값에서 하나를 더한값(전체 문자에서 '펜티엄3 650'란 문자가 시작



    하는 위치가 되겠죠)부터해서 '펜티엄3 650'의 길이(전체문자열의 길이에서 앞의 문자열의



    길이를 뺀값=전체문자열의길이에서 Pos가 반환한값을 뺀값)만큼 복사하면 '펜티엄3 650'란



    문자열을 구할 수 있죠...



    코딩하면 단 한줄밖에 안됩니다... 쓰고 보니 아래 코딩이 있네요...



    절대 나쁜 의도로 이런말을 드린것은 아닙니다. 오해하지 않으셨으면 합니다.



    ^^ 항상 즐코하세요.



    김영애 wrote:

    > 궁금한게 있습니다..

    > 좀 가르쳐 주세요~~~

    >

    > 예를 들어)) 테이블에 "인텔 펜티엄3 650" 라는 데이터 값이 있는데...

    >

    > 이 값을 인텔 뒤의 공백을 기준으로 "인텔"과 "펜티엄3 650" 이렇게 구분하고 싶은데...

    > 좋은 방법 없을까요??

    >

    > pos라는 함수를 사용해서...

    > "인텔" 이라는 값을 가져왔는데...

    > 뒤에 있는 "펜티엄3 650" 이라는 값은 어떻게 가져와야 하나요....

    > 휴~~~

    >

    > 빠른 답변 부탁 드립니다!!

  • Profile
    심동훈 2000.08.24 05:48
    김영애 wrote:

    > 궁금한게 있습니다..

    > 좀 가르쳐 주세요~~~

    >

    > 예를 들어)) 테이블에 "인텔 펜티엄3 650" 라는 데이터 값이 있는데...

    >

    > 이 값을 인텔 뒤의 공백을 기준으로 "인텔"과 "펜티엄3 650" 이렇게 구분하고 싶은데...

    > 좋은 방법 없을까요??

    >

    > pos라는 함수를 사용해서...

    > "인텔" 이라는 값을 가져왔는데...

    > 뒤에 있는 "펜티엄3 650" 이라는 값은 어떻게 가져와야 하나요....

    > 휴~~~

    >

    > 빠른 답변 부탁 드립니다!!



    델파이 세상의 심동훈입니다

    http://www.freechal.com/delphiworld

    Pos를 사용하셨다면 마찬가지로 응용하시면 됩니다.



    procedure TForm1.Button1Click(Sender: TObject);

    var

    ShimStr: string;

    Str1, Str2: string;

    begin

    ShimStr := '인텔 펜티엄3 650';

    Str1 := Copy(ShimStr, 1, Pos(' ', ShimStr)-1); //인텔

    Str2 := Copy(Shimstr, Pos(' ', ShimStr) + 1, Length(ShimStr) - Pos(' ', Shimstr)); //펜티엄3 650

    ShowMessage(Str1);

    ShowMessage(Str2);

    end;