C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[13914] [만해] Delphi code-> C++ Builder 로 전환중 문제가 생겨서
만해 [greenuri] 1053 읽음    2001-12-25 12:12
안녕하세요 만해 입니다.

요즘 HTML Parser를 구해서 막 돌려보고 있는데요

맘에 드는게 있어서 빌더로 전환시키는데

이게 사람 미치게 만들어서요

분명히 같은 컴포넌트에 같은 루틴인데

전혀 틀린 결과를 내보내서요

소스좀 봐주세요

흑흑~

procedure TFormMain.btn_ParseClick (Sender: TObject);
const
TagLinkAttribList  : array[0..12] of TTagAttrib = (
  (Tag: tagA; Attrib: attribHref),
  (Tag: tagAPPLET; Attrib: attribCode),
  (Tag: tagAREA; Attrib: attribHref),
  (Tag: tagBody; Attrib: attribBackGround),
  (Tag: tagFRAME; Attrib: attribSrc),
  (Tag: tagIFRAME; Attrib: attribSrc),
  (Tag: tagINPUT; Attrib: attribSrc),
  (Tag: tagIMG; Attrib: attribSrc),
  (Tag: tagIMG; Attrib: attribLowSrc),
  (Tag: tagLINK; Attrib: attribHref),
  (Tag: tagTABLE; Attrib: attribBackGround),
  (Tag: tagTD; Attrib: attribBackGround),
  (Tag: tagTH; Attrib: attribBackGround)
  );
var
a, i               : Integer;
begin
Memo_Links.Clear;
Memo_Links.Perform (WM_SETREDRAW, 0, 0);

HtmlReporter.SourceString := Memo_Source.Text;

while HtmlReporter.Next do
  begin
   i := Low (TagLinkAttribList);
   while i <= High (TagLinkAttribList) do
    begin
     if HtmlReporter.Tag.Tag = TagLinkAttribList[i].Tag then
      begin
       repeat
        a := HtmlReporter.Tag.IndexOfAttrib (TagLinkAttribList[i].Attrib);
        if a >= 0 then Memo_Links.Lines.Add (HtmlReporter.Tag.Values[a]);
        Inc (i);
       until (i > High (TagLinkAttribList)) or
        (HtmlReporter.Tag.Tag <> TagLinkAttribList[i].Tag);
       Continue;
      end
     else
      Inc (i);
    end;
  end;

Memo_Links.Perform (WM_SETREDRAW, 1, 0);
end;

이게 델파이 코드고요

제가 변환 시킨 씨플플 코드 나옵니다

void __fastcall TForm1::Button3Click(TObject *Sender)
{
TTagAttrib TagLinkAttribList[13] = {
  {Rjhtmltags::tagA,attribHREF},
  {Rjhtmltags::tagAPPLET,attribCODE},
  {Rjhtmltags::tagAREA,  attribHREF},
  {Rjhtmltags::tagBODY,  attribBACKGROUND},
  {Rjhtmltags::tagFRAME, attribSRC},
  {Rjhtmltags::tagIFRAME,attribSRC},
  {Rjhtmltags::tagINPUT, attribSRC},
  {Rjhtmltags::tagIMG,   attribSRC},
  {Rjhtmltags::tagIMG,   attribLowsrc},
  {Rjhtmltags::tagLINK,  attribHREF},
  {Rjhtmltags::tagTABLE, attribBACKGROUND},
  {Rjhtmltags::tagTD,    attribBACKGROUND},
  {Rjhtmltags::tagTH,    attribBACKGROUND}
  };
int a, i;
//  Memo4->Perform(WM_SETREDRAW, 0, 0);

  HtmlRep->SourceString = Memo2->Text;
  for ( ; HtmlRep->Next() ; )
  {
   for ( i = Low(TagLinkAttribList) ; i < High(TagLinkAttribList) ;)
    {
     if (HtmlRep->Tag->Tag == TagLinkAttribList[i].Tag)
      {
       for ( ; ; )
        {
        a = HtmlRep->Tag->IndexOfAttrib(TagLinkAttribList[i].Attrib);
        if (a >= 0)
          Memo4->Lines->Add(HtmlRep->Tag->Values[a]);
        i++;
       if  ((i > 13) ||
        (HtmlRep->Tag->Tag != TagLinkAttribList[i].Tag)) break;
        }
       continue;
      }
     else
      i ++;
    }
  }
// Memo4->Perform (WM_SETREDRAW, 1, 0);
}

//---------------------------------------------------------------------------
int __fastcall TForm1::Low(TTagAttrib* Tags)
{
  int low=999;
  for ( int i = 0 ; i < sizeof(Tags) ; i++ )
    if (Tags[i].Tag < low)
      low = Tags[i].Tag;
  return low;
}
//---------------------------------------------------------------------------
int __fastcall TForm1::High(TTagAttrib* Tags)
{
  int high=-1;
  for ( int i = 0 ; i < sizeof(Tags) ; i++ )
    if (Tags[i].Tag > high)
      high = Tags[i].Tag;
  return high;
}

도저히 뭐가 잘못된건지 감을 못 잡겠네요

고수님들의 도움 부탁 드립니다.

그리고 제가 사용하는 컴포넌트도 올릴께요

+ -

관련 글 리스트
13914 [만해] Delphi code-> C++ Builder 로 전환중 문제가 생겨서 만해 1053 2001/12/25
13916     이 자료 컴포넌트 자료실에 올려도 되나요? 박정모 703 2001/12/25
13915     c++ builder에 설치 해봤습니다. 아무런 문제가 없는것 같은데... ^^ 박정모 736 2001/12/25
76503         Re:c++ builder에 설치 해봤습니다. 아무런 문제가 없는것 같은데... ^^ 144 2024/03/25
13919         Re:c++ builder에 설치 해봤습니다. 아무런 문제가 없는것 같은데... ^^ 만해 736 2001/12/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.