Q&A

  • 줄단위 문자열 처리 힘들어요. 돠주세요 ㅠ.ㅠ
오전에도 어떤분의 도움으로 일부 처리를 한 부분이었는데. 막상 결과값을 내 놓고 보니, 줄단위 문자열 대입이 아니고요, 문자단위 대입이더라고요.ㅠ.ㅠ

<!--CodeS-->

HTMLStr := TStringList.create;
HTMLStr.Text := WebBrowser1.OleObject.Document.DocumentElement.OuterHTML;

for index := 0 to HTMLStr.count-1 do
begin
   // 번호 추출
   gcodeStr := Pos(':goASPPage(''', HTMLStr.Text[index])+11;
   HTMLDoc1 := copy(HTMLStr.Text[index], gcodeStr,13);
  
   if HTMLDoc1 <> '' then memo1.Lines.Add(HTMLDoc1);

   // 회차 추출
   gcodeStr := Pos(''',', HTMLStr.Text[index])+2;
   HTMLDoc2 := copy(HTMLStr.Text[index], gcodeStr,4);

   if HTMLDoc2 <> '' then memo1.Lines.Add(HTMLDoc2);

end;
HTMLStr.free;
except
end;

<!--CodeE-->

실제 String 텍스트는 350 줄 정도인데요. showMessage 하면 2만줄이 넘는 걸로 나오네요ㅠ.ㅠ

문자단위로 대입하는게 아니고 문장단위로 대입하는 방법이 없을까요...답변 부탁드립니다.ㅠ.ㅠ
2  COMMENTS
  • Profile
    송 시중 2006.12.22 02:50
    흐흐 전 질문 못 봤던 타격이 크네요.
    루프도 바꿨습니다.
    기존 소스에서 HTMLStr.Text[index]를 HtmlStr[index]로 바꿔줘도 될듯합니다.

    HTMLDoc := 으로 대입이 있는 쪽에 LastPostion에 +12, +2를 추가했습니다.
    찾는 내용 뒷쪽걸 복사하실테니 넣어주시는게 정상이겠네요.

    기존 질문을 못 봐서 정확히는 모르겠습니다만,
    검색 결과를 무시하고 한글자씩 넘어가며 매번 중복해서 찾네요.
    "1234567890a"문장에서 "a"를 찾으면 결과가 11번 나오는데 이걸 원하시는건 아니겠죠???
    PosEx로 찾기 시작하는곳을 지난번 찾은데 이후로 인덱스를 주어 찾으세요.

    <!--CodeS-->
    var
       LastPostion : integer;


    HTMLStr := TStringList.create;
    HTMLStr.Text := WebBrowser1.OleObject.Document.DocumentElement.OuterHTML;

    LastPostion := -1;  // 추가

    while LastPostion <> 0 do begin
    begin
       // 번호 추출
       LastPostion := PosEx(':goASPPage(''', HTMLStr.Text, LastPostion+1);
       HTMLDoc1 := copy(HTMLStr.Text, LastPosition+13,13);
      
       if HTMLDoc1 <> '' then memo1.Lines.Add(HTMLDoc1);

       // 회차 추출
       LastPostion := Pos(''',', HTMLStr.Text, LastPostion+1);
       HTMLDoc2 := copy(HTMLStr.Text, LastPosition+2,4);

       if HTMLDoc2 <> '' then memo1.Lines.Add(HTMLDoc2);

    // * "회차"가 반드시 "번호" 이후에 나타나는것이 아니라면 인덱스를 하나 더 쓰세요.
    // 인덱스 = LastPosition (타이핑을 좋아하시면 iLastSearchResultPostion 같은것도 괜찮을듯... ^^)


    end;
    HTMLStr.free;
    except
    end;
    <!--CodeE-->

  • Profile
    이하나 2006.12.22 03:07

    감사합니다.