아래처럼 하면 안되거든요. 비주얼 베이직에서 처럼 문자를 잘라서 자른 문자가 문자인지 숫자인지 비교를 할려고 합니다.
그런데.. 잘 안되네요. 부탁 드리겠습니다.
input_data:= InputBox('검색 입력 박스', '제품 코드를 입력하세요.ex)HEP0050', 'HEP0050');
if input_data = '' then
begin
showmessage('다시입력하세요.');
end
else
if input_data(1:3) not = alphabetics then
begin
showmessage('코드 앞부분의 3자리는 문자 입니다.');
end
else
if input_data(4:7) not = numerics then
begin
showmessage('코드 뒷부분의 4자리부터는 숫자 입니다.');
end;
> 아래처럼 하면 안되거든요. 비주얼 베이직에서 처럼 문자를 잘라서 자른 문자가 문자인지 숫자인지 비교를 할려고 합니다.
> 그런데.. 잘 안되네요. 부탁 드리겠습니다.
>
> input_data:= InputBox('검색 입력 박스', '제품 코드를 입력하세요.ex)HEP0050', 'HEP0050');
>
> if input_data = '' then
> begin
> showmessage('다시입력하세요.');
> end
> else
> if input_data(1:3) not = alphabetics then
> begin
> showmessage('코드 앞부분의 3자리는 문자 입니다.');
> end
> else
> if input_data(4:7) not = numerics then
> begin
> showmessage('코드 뒷부분의 4자리부터는 숫자 입니다.');
> end;
>
//////////////////////////////////////////////////////////////////
여러방법이 있으나 단순히 숫자인지만 체크하면 되지 않을까함니다.
아래 방법1은 문자와 숫자 혼용시 숫자가 아님을 확인할수있으나 모두가 문자인지는 모릅니다.
방법1------------------------------------------------
//문자가 정수형인지체크
function StrIntCheck(jisu:string) : Boolean;
begin
Result := True;
try
StrToFloat(jisu);
except
Result := False;
end;
end;
if StrIntCheck(input_data(1:3)) = True then begin
showmessage('코드 앞부분의 3자리는 문자를 입력 하세요.');
exit;
end
else if StrIntCheck(input_data(4:7)) = False then begin
showmessage('코드 뒷부분의 4자리부터는 숫자를 입력 하세요.');
exit;
end;
방법2---------------------------------------------------------
function IntCheck(jisu:string) : Boolean;
var
i : integer;
begin
Result := True;
for i := 1 to Length(jisu) do begin
if not(jisu[i] in ['0'..'9'])then
begin
Result := False;
Exit;
end;
end;
end;
function alphaCheck(jisu:string) : Boolean;
var
i : integer;
begin
Result := True;
for i := 1 to Length(jisu) do begin
if not(jisu[i] in ['A'..'Z'])then
begin
Result := False;
Exit;
end;
end;
end;