Q&A

  • string tokenize.... 분리자로 문자열 자르기..
안녕하세요..

string Tokenize 에 관한 내장함수가 있는지 궁금해서요..

가령.."200 * 900 + 600"라든가 하는 식을 문자열로 입력받았을때...

연산자별로 잘라서 뭐.. 배열이나 변수에 넣어줄 만한 함수요..



입력받는 string 은 꼭 저런 수식이 아니라 문자열일수도 있구요..

"연필을 5자루 샀다."...뭐 이런건 공백으로 자를 수도 있겠구요..



하여간 문자열을 자르는데 pos, copy 를 사용하지 않고요... (pos,copy는 분리자를 하나밖에 넣어줄 수가 없잖아요.) 여러개의 분리자를 넘겨주어서 문자열을 자를만한 함수요..

윈 API도 괜찮고요...



질문이 장황해졌네요...

또 뭐..꼭 위의 질문내용과 관계없더라도 델파이 내장함수에 관한 자료나 서적이 있음 알려주세요...



그럼 수고하시구요....부탁드립니다.

1  COMMENTS
  • Profile
    이만준 2000.01.18 04:39
    김다혜 wrote:

    > 안녕하세요..

    > string Tokenize 에 관한 내장함수가 있는지 궁금해서요..

    > 가령.."200 * 900 + 600"라든가 하는 식을 문자열로 입력받았을때...

    > 연산자별로 잘라서 뭐.. 배열이나 변수에 넣어줄 만한 함수요..

    >

    > 입력받는 string 은 꼭 저런 수식이 아니라 문자열일수도 있구요..

    > "연필을 5자루 샀다."...뭐 이런건 공백으로 자를 수도 있겠구요..

    >

    > 하여간 문자열을 자르는데 pos, copy 를 사용하지 않고요... (pos,copy는 분리자를 하나밖에 넣어줄 수가 없잖아요.) 여러개의 분리자를 넘겨주어서 문자열을 자를만한 함수요..

    > 윈 API도 괜찮고요...

    >

    > 질문이 장황해졌네요...

    > 또 뭐..꼭 위의 질문내용과 관계없더라도 델파이 내장함수에 관한 자료나 서적이 있음 알려주세요...

    >

    > 그럼 수고하시구요....부탁드립니다.



    안녕하세요...



    함수로 제공되는게 있는지는 모르겠구요...

    제가 만들어쓰던겁니다..





    function GetSubStr(sInput, sSeparator : string; iOrder : Integer): string;

    var I, iSpr : Integer;

    begin//특정 문자로 분리된 문자열에서 iOrder번째 하위문자열을 돌려준다.

    iSpr := 0;

    Result := '';

    for I := 1 to Length(sInput) do begin

    if sInput[I] = sSeparator then begin

    Inc(iSpr);

    if iSpr=iOrder then Exit else Result := '';

    end else Result := Result + sInput[I];

    end;

    if iOrder <> iSpr+1 then Result := '';

    end;





    예를들어.

    문자열이 s := '가나다;라마바;아자차'; 라면



    GetSubStr(s, 2) 하면 '라마바' 를 돌려줍니다.



    그럼..



    .