Q&A

  • 특정문자열의 시작위치를 알고 싶어요..
'select * from table order by name'

이란 문장이 있을때 order by 문자열이 시작되는 'o'의 위치

즉 공백포함 21번째 임을 리턴해 주는 함수는 없나요?

order by 이후의 문자열을 잘라서 상황에 따라 정렬필드를 추가하거나 바꾸려고 하거든요

이것을 응용하면 요긴하게 쓰일것 같은데... 아시는분 답변좀...





3  COMMENTS
  • Profile
    초보 2001.10.11 22:59
    초보 wrote:

    > 'select * from table order by name'

    > 이란 문장이 있을때 order by 문자열이 시작되는 'o'의 위치

    > 즉 공백포함 21번째 임을 리턴해 주는 함수는 없나요?

    > order by 이후의 문자열을 잘라서 상황에 따라 정렬필드를 추가하거나 바꾸려고 하거든요

    > 이것을 응용하면 요긴하게 쓰일것 같은데... 아시는분 답변좀...

    >

    >

  • Profile
    이순구 2001.10.11 22:53
    초보 wrote:

    > 'select * from table order by name'

    > 이란 문장이 있을때 order by 문자열이 시작되는 'o'의 위치

    > 즉 공백포함 21번째 임을 리턴해 주는 함수는 없나요?

    > order by 이후의 문자열을 잘라서 상황에 따라 정렬필드를 추가하거나 바꾸려고 하거든요

    > 이것을 응용하면 요긴하게 쓰일것 같은데... 아시는분 답변좀...

    >

    >



    Pos라는 함수가 문자열의 위치를 찾아주는 함수입니다. 함수 원형은 다음과 같고요..

    function Pos(Substr: string; S: string): Integer;



    질문하신 것을 예로 들어보면..



    var

    str: string;

    p: Integer;

    begin

    str := 'select * from table order by name';

    p := Pos('order', str);// 'order'앞에 'o'라는 문자가 없으니까

    // p := Pos('o', str) 해도 됩니다.

    ShowMessage(IntToStr(p));

    end;



    하시면 '21'을 보여주겠군요.

  • Profile
    초보의비애 2001.10.11 22:27
    초보 wrote:

    > 'select * from table order by name'

    > 이란 문장이 있을때 order by 문자열이 시작되는 'o'의 위치

    > 즉 공백포함 21번째 임을 리턴해 주는 함수는 없나요?

    > order by 이후의 문자열을 잘라서 상황에 따라 정렬필드를 추가하거나 바꾸려고 하거든요

    > 이것을 응용하면 요긴하게 쓰일것 같은데... 아시는분 답변좀...

    >

    >





    help에 이렇게 나오더군여.

    function Pos(Substr: string; S: string): Integer;

    반환되는 값은 찾은문자열의 첫번째 인덱스임다.