±ÍÇÏ´Â ¼Õ´Ô À̽ʴϴÙ
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ
  
  µ¨¸¶´ç °ø½Ä ÀºÇà°èÁÂ
  ÇϳªÀºÇà 227-910235-83607
  ¿¹±ÝÁÖ ÀÌ»ó±¹(¿î¿µÁø)
ÇÁ·ÎÁ§Æ® °Ô½ÃÆÇ
ÅõÇ¥°Ô½ÃÆÇ
µ¨¸¶´ç¼Ò°³
±âÃʺÎÅÍ È°¿ë±îÁö! µ¨ÆÄÀÌ ±³À° - µ¥ºê±â¾î
ÀÚ·á½Ç ÀÚ·á½Ç ÀÔ´Ï´Ù.
±Û³»¿ë - ÀÚ·á½Ç
 µµ·Î¸í ÁÖ¼Ò º¯È¯ ÇÁ·Î±×·¥ÀÔ´Ï´Ù.
±è½ÃÁØ
(±è½ÃÁØ)
2016-11-13 ¿ÀÈÄ 3:07:09
4442ȸ Á¶È¸


÷ºÎÆÄÀÏ ´Ù¿î·Îµå
µµ·Î¸íº¯È¯.zip
µµ·Î¸í ÁÖ¼Ò º¯È¯ °ü·Ã µ¨¸¶´ç¿¡ ¿Ã·ÁÁֽŠ°í¸¶¿ì½Å ´Ôµé ´öºÐ¿¡ ÇÁ·Î±×·¥À» ¸¸µé¾î Àß »ç¿ëÇÏ°í ÀÖ¾ú´Âµ¥
¾î´Àµ¡ ÀÎÁõ±â°£ÀÌ ¸¸·áµÇ¾î¹ö·È³×¿ä...
±×·¡¼­ ´Ù½Ã ÀÎÁõÀ» ¹Þ¾Æ ÄÄÆÄÀÏÀ» ÇØ º¸´Ï °á°ú°¡ ÀüÇô ¾È ³ª¿À±æ·¡ ºÃ´õ´Ï ±×»õ API »ç¿ë¹ýµµ º¯°æÀÌ
µÇ¾î Àֳ׿ä...
±×·¡¼­ »õ·Î¿î API »ç¿ë¹ýÀ» Àû¿ëÇÏ¿© ´Ù½Ã ¸®´º¾ó ÇÏ¿´½À´Ï´Ù.

Çٽɼҽº... µ¨ÆÄÀÌ 10.1
procedure TForm3.btnFindClick(Sender: TObject);
var
    Code, Url, SearchWord, FindKeyWord: string ;
    Data, DResult: TStringStream;
    OuterRoot, EntryNode: IXmlNode;
    i, j: Integer;
begin
    if Trim(edtAddr.Text).IsEmpty then
    begin
        ShowMessage('°Ë»öÇÒ ±¸ÁÖ¼Ò¸¦ ÀÔ·ÂÇϽʽÿÀ..');
        edtAddr.SetFocus;
        Exit;
    end;

    if rdgAddr.ItemIndex = 0 then
        FindKeyWord := 'roadAddr'
    else
        FindKeyWord := 'roadAddrPart1';

    DResult := TStringStream.Create('');

    try
        Screen.Cursor := crHourGlass;
        idHttp.Request.ContentType := 'application/json';

        Code :=  TNetEncoding.URL.Encode('¹ß±Þ¹ÞÀº ÀÎÁõÅ°¸¦ ÀÔ·ÂÇϽʽÿÀ...');

        SearchWord := TNetEncoding.URL.Encode(edtAddr.Text);

        Url:= 'http://www.juso.go.kr/addrlink/addrLinkApi.do';
        IdHttp.Get(Url + '?confmKey=' + Code + '&keyword=' + SearchWord, DResult);

        XMLDocument.LoadFromStream(DResult);
        XMLDocument.Active:=True;

        OuterRoot := XMLDocument.DocumentElement;
        if OuterRoot.ChildNodes.Count <= 1 then
        begin
            gdResult.ClearRows(gdResult.FixedRows, 1);
            gdResult.RowCount := 2;

            btnClipBoardCopy.Enabled := False;
            ShowMessage('ÇØ´çÇϴ µµ·Î¸í ÁÖ¼Ò¸¦ Ã£À» ¼ö°¡ ¾ø½À´Ï´Ù...');
            edtAddr.SetFocus;
            Exit;
        end;

        with gdResult do
        begin
            RowCount := OuterRoot.ChildNodes.Count;
            ClearRows(FixedRows, RowCount - FixedRows);
            AutoNumberCol(0);
        end;

        for i := 0 to OuterRoot.ChildNodes.Count -1 do
        begin
            if OuterRoot.ChildNodes[i].NodeName = 'juso' then
            begin
                EntryNode := OuterRoot.ChildNodes[i];

                if EntryNode.ChildNodes.Count > 0 then
                begin
                    // ¾Æ·¡ Ãâ·Â º¯¼ö¸íµéÀÌ º¯°æµÇ¾úÀ½...
                    for j := 0 to EntryNode.ChildNodes.Count -1 do
                    begin
                        if EntryNode.ChildNodes[j].NodeName = 'zipNo' then
                            gdResult.Cells[1, i] := EntryNode.ChildNodes[j].Text
                        else if EntryNode.ChildNodes[j].NodeName = FindKeyWord then
                            gdResult.Cells[2, i] := EntryNode.ChildNodes[j].Text
                        else if EntryNode.ChildNodes[j].NodeName = 'jibunAddr' then
                            gdResult.Cells[3, i] := EntryNode.ChildNodes[j].Text;
                    end;
                end
            end;
            gdResult.SetFocus;
            btnClipBoardCopy.Enabled := True;
        end;
    finally
        DResult.Free;
        Screen.Cursor := crDefault;
    end;
end;

ÇÁ·Î±×·¥ Àüü ¼Ò½º´Â ¾Æ·¡ ºí·Î±×¿¡¼­ ´Ù¿î ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.
blog.naver.com/seejune66