안녕하세요..
string Tokenize 에 관한 내장함수가 있는지 궁금해서요..
가령.."200 * 900 + 600"라든가 하는 식을 문자열로 입력받았을때...
연산자별로 잘라서 뭐.. 배열이나 변수에 넣어줄 만한 함수요..
입력받는 string 은 꼭 저런 수식이 아니라 문자열일수도 있구요..
"연필을 5자루 샀다."...뭐 이런건 공백으로 자를 수도 있겠구요..
하여간 문자열을 자르는데 pos, copy 를 사용하지 않고요... (pos,copy는 분리자를 하나밖에 넣어줄 수가 없잖아요.) 여러개의 분리자를 넘겨주어서 문자열을 자를만한 함수요..
윈 API도 괜찮고요...
질문이 장황해졌네요...
또 뭐..꼭 위의 질문내용과 관계없더라도 델파이 내장함수에 관한 자료나 서적이 있음 알려주세요...
그럼 수고하시구요....부탁드립니다.
> 안녕하세요..
> 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) 하면 '라마바' 를 돌려줍니다.
그럼..
.