Q&A

  • 문자를 분리해서 비교하는게 잘 안됩니다.????
아래처럼 하면 안되거든요. 비주얼 베이직에서 처럼 문자를 잘라서 자른 문자가 문자인지 숫자인지 비교를 할려고 합니다.

그런데.. 잘 안되네요. 부탁 드리겠습니다.



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  COMMENTS
  • Profile
    홍성락 2001.10.13 04:48
    정규성 wrote:

    > 아래처럼 하면 안되거든요. 비주얼 베이직에서 처럼 문자를 잘라서 자른 문자가 문자인지 숫자인지 비교를 할려고 합니다.

    > 그런데.. 잘 안되네요. 부탁 드리겠습니다.

    >

    > 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;