|
아래 소스는 Visual C++에서 작성한 소스인데 이것을 C-builder로 다시 작성을 하고 있거든요.
그런데 자꾸 에러가 많이 뜨네요.
아그리고 먼저 소스의 간략한 내용을 말씀을 드리면...
텍스트를 추출하는 소스입니다.
Html 코드에서 Title 부분의 글을 추출을 해서 저장을 하고
그리고 Html 코드에서 body부분만을 일단 먼저 추출을 합니다. 다음으로 주 태그를 제외한 모든 태그를 삭제를 합니다. 그러면 body 부분의 문자만 출력이 되게 하는 소스 입니다.
그럼 제가 잘 안되는 부분들을 적어 둘테니 답좀 달아주세요.
참고로 CString 은 AnsiString으로 Mid는 SubString으로 등등을 바꿨구요
그리고 사용법을 잘 모르는건 ===>>> 해 두고서 적어 둘께요...(물어볼것은 다 앞부분에 있습니다.)
부디 ...
CString Parse::StripTags(CString csHtml)
{
CString temp("");
CString csTitle(""); ===>>>CString은 옆에와 같이 초기화를 해 주면 되는데 AnsiString은
초기화를 어떻게 해주어야 하는지요.
temp = csHtml; ===>>>정말 이해가 안가지만 cb에서 해 보면 자꾸만 에러가 뜹니다.
c-builder 에서도 이와 같이 했거든요.
그런데 자꾸 이런 에러( 'operator'not implemented in
type 'AnsiStrin' for arguments of the smae type)가 뜨네요.
temp.MakeLower(); ===>>>문자열중에 대문자인 문자를 모두 소문자로 전환하는것.
이거는 어떻게 바꾸는지 모르겠습니다.
LowerCase를 어떻게 쓰는지 모르겠거든요.
csHtml.TrimLeft(); ===>>>그리고 이부분은 그냥 잘 안되는거 같아서 적어 둡니다.
코드의 앞부분에 공백이 있으면 왼쪽으로 시프트 시켜서 공백을
없애 주는건데 메세지박스에다 확인을 해보니
에러는 안나고 넘어가는데 확인을 해보면 적용이 안되더라고요.
int StartPoint=0, EndPoint=0, len = temp.GetLength(),i;
StartPoint = temp.Find(" "");
if((StartPoint >= 0) && ( EndPoint >0 ))
{
if((csHtml.Mid(StartPoint, EndPoint-StartPoint-7)!="")&&(temp.Find("untitled")<0))
csTitle = "Title : "+csHtml.Mid(StartPoint+7, EndPoint-StartPoint-7)+"\r\n\r\n";
}
// body 추출
StartPoint =0;
EndPoint =0;
StartPoint = temp.Find(""");
if((StartPoint>=0) && (EndPoint>=0))
{
temp = csHtml.Mid( StartPoint, EndPoint-StartPoint+7);
}
csHtml = temp;
temp.MakeLower();
// br 변경
StartPoint =0;
EndPoint =0;
while( temp.Find(" ") >= 0 )
{
StartPoint=temp.Find(" ");
temp.Delete( StartPoint,4);
csHtml.Delete( StartPoint,4);
temp.Insert(StartPoint, "\r\n");
csHtml.Insert(StartPoint, "\r\n");
}
// 태그 제거
StartPoint =-1;
EndPoint =0;
len = temp.GetLength();
for(i=0; i<len; i++)
{
if(temp.GetAt(i)=='<')
StartPoint=i;
if( (StartPoint>=0) && (temp.GetAt(i)=='>') )
{
temp.Delete( StartPoint, i-StartPoint+1);
csHtml.Delete( StartPoint, i-StartPoint+1);
len -= (i-StartPoint+1);
i=StartPoint;
}
}
csHtml.TrimLeft();
csHtml = csTitle + csHtml;
csHtml=SpecialCharacter(csHtml);
return csHtml;
}
|