Q&A

  • 도와주세요..잘모르겠네여..
여긴 뭐라고 써야하나여..

주민등록 번호를 쓰면..남자인지 여자인지...기록이되야해여..

그러니깐..MaskEdit에 주민등록번호를 입력합니다.999999-2999999 이렇게 입력을 하면

-다음이 2이면Edit에 '여'라고 입력되고 1이면 '남'이라고 입력 되게여...

'xxxxxx-1xxxxxx'이부분좀 알려주세여..





begin

if MaskEdit1.Text='xxxxxx-1xxxxxx' then

Edit4.Text:='남'

else

Edit4.text:='여';



글구...주민번호를 쓰면...자동으로 생년월일이 채워지게...

5  COMMENTS
  • Profile
    가을빛 女友 2000.08.10 03:17
    사족인데요..



    2000년부터 신생아의 경우 뒤에 자리의 시작이 3과 4로 시작합니다.



    ^^



    이 아이들이 커서 주민등록번호 사용할려면 아직 십몇년은 남았지만...



    좋은 하루 되세요





  • Profile
    한미르 2000.08.10 01:48
    이렇게 했거덩요...근데...

    만약 주민번호가 123421-1234567 라면...주민번호를 앞에 여섯자리중 마지막 자리1을 보구..남이라구 나오는데여...고쳐보려고 노력했지만 잘 안돼내여..

    아무래두..에디트마스크가______-_______이렇게생겨서 그런가????



    if MaskEdit1.GetTextLen >= 7 then

    begin

    if copy(MaskEdit1.Text, 8, 1) = '1' then

    Edit4.Text:='남'

    else if copy(MaskEdit1.Text, 8, 1) = '2' then

    Edit4.text:='여'



    end;

  • Profile
    이은정 2000.08.09 22:03
    한미르 wrote:

    > 여긴 뭐라고 써야하나여..

    > 주민등록 번호를 쓰면..남자인지 여자인지...기록이되야해여..

    > 그러니깐..MaskEdit에 주민등록번호를 입력합니다.999999-2999999 이렇게 입력을 하면

    > -다음이 2이면Edit에 '여'라고 입력되고 1이면 '남'이라고 입력 되게여...

    > 'xxxxxx-1xxxxxx'이부분좀 알려주세여..

    >

    >

    > begin

    > if MaskEdit1.Text='xxxxxx-1xxxxxx' then

    > Edit4.Text:='남'

    > else

    > Edit4.text:='여';

    >

    > 글구...주민번호를 쓰면...자동으로 생년월일이 채워지게...





    아마도 이렇게 하면 될것 같네요..



    procedure TForm1.MaskEdit1Change(Sender: TObject);

    var bir : string;

    begin

    //xxxxxx까지 입력했을때..생일입력

    if(Length(Trim(MaskEdit1.Text)) = 6) then

    begin

    bir := '19' + copy(MaskEdit1.Text, 1,2) + '-' + copy(MaskEdit1.Text, 3,2) + '-' + copy(MaskEdit1.Text, 5,2);

    BirEdit := bir;

    end; //생일 입력...여기선 1900년도로 하드코딩했는데 2000년일때가 문제이군요..

    그건 앞으로 국가에서 알아서 바꾸겠죠?

    {==========================================================================}

    //xxxxxx - x까지 입력했을때..성별입력

    if(Length(Trim(MaskEdit1.Text)) = 7) then

    begin

    if copy(MaskEdit1.Text, 8, 1) = '1' then

    Edit4.Text:='남'

    else if copy(MaskEdit1.Text, 8, 1) = '2' then

    Edit4.text:='여';

    else begin

    MessageDlg('주민번호를 정확히 입력하여 주십시오. ', mtError, [mbYes],0);

    MaskEdit1.SetFocus;

    MaskEdit1.text := ' ';

    Exit;

    end;

    end;

  • Profile
    우정범 2000.08.09 22:01
    이렇게 해보세요.



    생각나는데로 해본건데요..흘~~



    참..MASKEDIT 의 EditMask 에서 Save Literal Character 를 체크안했을때의 코딩입니다.



    procedure TForm1.MaskEdit1KeyPress(Sender: TObject; var Key: Char);

    begin

    if MaskEdit1.GetTextLen >= 6 then

    begin

    Edit1.Text := Copy(MaskEdit1.Text,0,2) + '년' +

    Copy(MaskEdit1.Text,3,2) + '월' +

    Copy(MaskEdit1.Text,5,2) + '일';

    if Copy(MaskEdit1.Text,7,1) = '1' then

    Label1.Caption := '남'

    else if

    Copy(MaskEdit1.Text,7,1) = '2' then Label1.Caption := '여'

    else

    Label1.Caption := '중성? ^_^';



    end;

    end;

  • Profile
    없음 2000.08.09 21:56


    if Copy(MaskEdit1.Text,8,1)=1 then

    Edit4.Text:='남'

    else

    Edit4.Text:='여';

    end if



    age=StrToInt(Copy(MaskEdit1.Text,1,2));

    if age=0 then

    year:='2000'

    else

    year:=IntToStr(1900+age);

    end if



    month:=Copy(MaskEdit1.Text,3,2);

    day:=Copy(MaskEdit1.Text,5,2);



    이렇게 하면 생년월일이 나옵니다. year, month, day는 문자형이고, age는 정수형



    이죠.