Q&A

  • 문자위치 찾기(조건설정)


초보입니다. Pos함수를 사용하여 문자의 위치를

알아낼수 있습니다만, 조건이 있을 경우 어떻게

하면 될까요? 예를들어



noPos := Pos('aa',myString); 이라고하면 'aa'의

첫부분 위치가 noPos에 들어갑니다. 헌데 조건을 붙여서

'aa'의 위치를 찾았어도 'aa'의 앞에 내가 지정하는 문자가

들어있을 경우(예를 들어 'aa'의 앞에 위치한 문자가 #, & 등으로 -> #aa, $aa)

는 skip하고 다음위치를 찾도록 하고 싶은대요



어떻게 하면 좋을까요



1  COMMENTS
  • Profile
    1999.05.21 21:50
    지니 wrote:

    >

    > 초보입니다. Pos함수를 사용하여 문자의 위치를

    > 알아낼수 있습니다만, 조건이 있을 경우 어떻게

    > 하면 될까요? 예를들어

    >

    > noPos := Pos('aa',myString); 이라고하면 'aa'의

    > 첫부분 위치가 noPos에 들어갑니다. 헌데 조건을 붙여서

    > 'aa'의 위치를 찾았어도 'aa'의 앞에 내가 지정하는 문자가

    > 들어있을 경우(예를 들어 'aa'의 앞에 위치한 문자가 #, & 등으로 -> #aa, $aa)

    > 는 skip하고 다음위치를 찾도록 하고 싶은대요

    >

    > 어떻게 하면 좋을까요

    >



    음냐...



    pos()함수를 쓰면 해당 위치의 정수값이 되돌려지죠....



    그럼, 이렇게....



    var

    ln, ln2, tmpPos: Integer;

    tmpStr, tmp: String;

    begin

    ln := Length(myString);

    tmpStr := myString;

    tmp := 'aa';

    ln2 := Length(tmp);

    while True do

    begin

    tmpPos := Pos(tmp, tmpStr);

    If tmpPos = 0 then Break;



    If Copy(tmpStr, tmpPos-1, 1) <> '#' then Break;

    //'#'이랑 틀렸을 경우입니다.



    tmpStr := Copy(tmpStr, tmpPos+ln2, ln - tmpPos);

    If tmpStr = '' then Break;

    end;

    end;