오늘은 많은 발전이 있었습니다.
미약하지만 나름대로 만족스럽습니다.
모두 용일님과 동훈님 같은 고수님의 격려에 힘을 얻을 수 있었기 때문이라 생각합니다.
어제에 이어 같은 예외처리를 하고자 합니다.
이번에는 선택적으로 16진수의 형태 문자인 A~F는 참값으로 돌리고자 합니다만 어떻게 해야 할지 모르겠습니다.
이런 것은 어떨까요?
// 입력받은 수가 16진수 형태인지 여부를 묻는 function
function TForm1.AskSixteen(Jinsu: String): Boolean;
var
i, Jungsu : Integer;
HexSet : set of 'A'..'F';
begin
for i := 1 to Length(Jinsu) do
begin
if Jinsu[i] in HexSet then
result := False
else if StrToInt(Jinsu[i]) = Jungsu then
result := False
else
result := True;
end;
end;
나름대로 위와 같은 함수를 만들어서 Boolean형 값을 받고자 했는데 컴파일은 되지만 원하는 결과값을 가질 수는 없었습니다.
어떻게 하면 좋겠습니까?
어제와 같은 방법으로 예외처리를 할 수 있는 방법이 있다면 좋겠는데...
다시한번 고수님들의 조언을 간곡히 부탁드리는 바입니다.
아래와 같이 하세요...
// 입력받은 수가 16진수 형태인지 여부를 묻는 function
function TForm1.AskSixteen(Jinsu: String): Boolean;
begin
Result := True;
try
StrToInt('$' + Jinsu);
except
on EConvertError do
Result := False;
end;
end;
^^ 항상 즐코하세요.
초보자 wrote:
> 오늘은 많은 발전이 있었습니다.
> 미약하지만 나름대로 만족스럽습니다.
> 모두 용일님과 동훈님 같은 고수님의 격려에 힘을 얻을 수 있었기 때문이라 생각합니다.
>
> 어제에 이어 같은 예외처리를 하고자 합니다.
> 이번에는 선택적으로 16진수의 형태 문자인 A~F는 참값으로 돌리고자 합니다만 어떻게 해야 할지 모르겠습니다.
>
> 이런 것은 어떨까요?
>
> // 입력받은 수가 16진수 형태인지 여부를 묻는 function
> function TForm1.AskSixteen(Jinsu: String): Boolean;
> var
> i, Jungsu : Integer;
> HexSet : set of 'A'..'F';
> begin
> for i := 1 to Length(Jinsu) do
> begin
> if Jinsu[i] in HexSet then
> result := False
> else if StrToInt(Jinsu[i]) = Jungsu then
> result := False
> else
> result := True;
> end;
> end;
>
> 나름대로 위와 같은 함수를 만들어서 Boolean형 값을 받고자 했는데 컴파일은 되지만 원하는 결과값을 가질 수는 없었습니다.
> 어떻게 하면 좋겠습니까?
>
> 어제와 같은 방법으로 예외처리를 할 수 있는 방법이 있다면 좋겠는데...
> 다시한번 고수님들의 조언을 간곡히 부탁드리는 바입니다.