Q&A

  • 타입체크
스트링을 입력받아 스트링의 각문자들이 숫자또는 . + - 인지 체크하려 합니다.

그러니까 입력받은 스트링이 Integer 나 Float 으로 변환 가능한지 체크하려는 것이지요.

어떤 방법이 있는지 고수님들의 많은 조언 부탁드립니다.

3  COMMENTS
  • Profile
    강인규 2000.04.26 05:19
    단순히 체크하는 것이라면 이렇게 하심 됩니다.



    try

    strtofloat(edit1.Text);

    except

    ShowMessage('얼러리? 숫자가 아니자녀?');

    end;



    즐코하세요.



    nambada wrote:

    > 스트링을 입력받아 스트링의 각문자들이 숫자또는 . + - 인지 체크하려 합니다.

    > 그러니까 입력받은 스트링이 Integer 나 Float 으로 변환 가능한지 체크하려는 것이지요.

    > 어떤 방법이 있는지 고수님들의 많은 조언 부탁드립니다.

  • Profile
    nambada 2000.04.26 06:37
    답변 감사합니다.

    근데 '+' 나 '-' 도 에러로 봐버리네요.

    스트링내에서 '+' 나 '-' 는 에러가 아니게 하고 싶은데요.

    ==>

    try

    if (copy(grd_WD.Cells[j,aRow],1,1)='-')or

    (copy(grd_WD.Cells[j,aRow],1,1)='+')then

    str := copy(grd_WD.Cells[j,aRow],2,Length(grd_WD.Cells[j,aRow])-1)

    else str := grd_WD.Cells[j,aRow];

    strtofloat(str);

    except

    messagedlg('유효한 값이 아닙니다.',mtError,[mbOK],0);

    grd_WD.Cells[j,aRow] := '';

    Result := false;

    Exit;

    end; //end try



    grd_WD 는 스트링그리드이고 셀에 입력된 값의 첫글자가 '-' 이거나 '+' 이면

    다음 글자부터 끝까지를 str에 담고 아니면 스트링전체를 str에 담아 테스트해 보았지만 잘되지 않더군요.





    강인규 wrote:

    > 단순히 체크하는 것이라면 이렇게 하심 됩니다.

    >

    > try

    > strtofloat(edit1.Text);

    > except

    > ShowMessage('얼러리? 숫자가 아니자녀?');

    > end;

    >

    > 즐코하세요.

    >

    > nambada wrote:

    > > 스트링을 입력받아 스트링의 각문자들이 숫자또는 . + - 인지 체크하려 합니다.

    > > 그러니까 입력받은 스트링이 Integer 나 Float 으로 변환 가능한지 체크하려는 것이지요.

    > > 어떤 방법이 있는지 고수님들의 많은 조언 부탁드립니다.

  • Profile
    강인규 2000.04.26 11:51
    일단 고백합니다. 저는 스트링그리드는 한번도 써본적이 없어 뭐라 말씀드릴 수가 없지만 스트링그리드의 해당 컬럼값이 어떻게 (어떤형식으로 어떤 값이) 들어가는지 먼저 체크해보시길 바랍니다.

    만일 string형으로 단순히 -1234라면 에러가 나지 않을것입니다.

    에디트로 테스트해봤는데 이상이 없었습니다.

    휴~ 고수님들의 도움이 필요하겠군요.





    nambada wrote:

    > 답변 감사합니다.

    > 근데 '+' 나 '-' 도 에러로 봐버리네요.

    > 스트링내에서 '+' 나 '-' 는 에러가 아니게 하고 싶은데요.

    > ==>

    > try

    > if (copy(grd_WD.Cells[j,aRow],1,1)='-')or

    > (copy(grd_WD.Cells[j,aRow],1,1)='+')then

    > str := copy(grd_WD.Cells[j,aRow],2,Length(grd_WD.Cells[j,aRow])-1)

    > else str := grd_WD.Cells[j,aRow];

    > strtofloat(str);

    > except

    > messagedlg('유효한 값이 아닙니다.',mtError,[mbOK],0);

    > grd_WD.Cells[j,aRow] := '';

    > Result := false;

    > Exit;

    > end; //end try

    >

    > grd_WD 는 스트링그리드이고 셀에 입력된 값의 첫글자가 '-' 이거나 '+' 이면

    > 다음 글자부터 끝까지를 str에 담고 아니면 스트링전체를 str에 담아 테스트해 보았지만 잘되지 않더군요.

    >

    >

    > 강인규 wrote:

    > > 단순히 체크하는 것이라면 이렇게 하심 됩니다.

    > >

    > > try

    > > strtofloat(edit1.Text);

    > > except

    > > ShowMessage('얼러리? 숫자가 아니자녀?');

    > > end;

    > >

    > > 즐코하세요.

    > >

    > > nambada wrote:

    > > > 스트링을 입력받아 스트링의 각문자들이 숫자또는 . + - 인지 체크하려 합니다.

    > > > 그러니까 입력받은 스트링이 Integer 나 Float 으로 변환 가능한지 체크하려는 것이지요.

    > > > 어떤 방법이 있는지 고수님들의 많은 조언 부탁드립니다.