안녕하세요..
제목 그대로 문자열이 있으면..오른쪽부터 문자열을 세어서 그자리에 있는게 먼지를
알려고합니다..
예) 45000 이면 맨 오른쪽에 있는 0부터 세어나가면서 4번째 자리의 숫자가 먼지를
알려고 하는데..잘 몰라서 이렇게 질문을 드립니다.
금액이 고정되어(4,5,6 이렇게 몇자리가 나올지 모르는거라) 있는게 아니라..
왼쪽부터 세어나가기는 그렇고..
로직으로는 풀수있을거같은데..함수가 있는지를 알고싶어서요..
로직으로 풀면 넘 코딩량이 많아 질거 같아서..
알고있으시분이 계시면 꼭좀 가르쳐주세요..그럼 즐거운코딩되세요..
> 안녕하세요..
>
> 제목 그대로 문자열이 있으면..오른쪽부터 문자열을 세어서 그자리에 있는게 먼지를
> 알려고합니다..
>
> 예) 45000 이면 맨 오른쪽에 있는 0부터 세어나가면서 4번째 자리의 숫자가 먼지를
> 알려고 하는데..잘 몰라서 이렇게 질문을 드립니다.
>
> 금액이 고정되어(4,5,6 이렇게 몇자리가 나올지 모르는거라) 있는게 아니라..
> 왼쪽부터 세어나가기는 그렇고..
>
> 로직으로는 풀수있을거같은데..함수가 있는지를 알고싶어서요..
> 로직으로 풀면 넘 코딩량이 많아 질거 같아서..
>
> 알고있으시분이 계시면 꼭좀 가르쳐주세요..그럼 즐거운코딩되세요..
예제를 하나 올려 드리지요...~!
function LastPos(Substr: string; S: string): integer;
var
sTmp: String;
iLastPos: integer;
begin
sTmp := S;
iLastPos := Pos(Substr, sTmp);
if iLastPos > 0 then
begin
sTmp := Copy(sTmp, iLastPos + 1, 999);
while Pos(Substr, sTmp) > 0 do
begin
iLastPos := iLastPos + Pos(Substr, sTmp);
sTmp := Copy(sTmp, Pos(Substr, sTmp)+1, 999);
end;
end;
LastPos := iLastPos;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
// 연습용 문자열
Edit1.Text := 'sdA5425A0A5';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('맨 첫번째 ''A'' 문자가 '+ IntToStr(Pos('A',Edit1.Text))+'번째에 있습니다');
ShowMessage('맨 마지막 ''A'' 문자가 '+ IntToStr(LastPos('A',Edit1.Text))+'번째에 있습니다');
end;
end.
그럼 행복하셔요..,