■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50
monazilla
- 209 :turbo type D@monazilla :2001/02/16(金) 12:39
- //////////////////
//2chのHTMLソース(http://salad.2ch.net/bbstable.html)
//からTreeViewのItemを設定するソース
procedure TMonaplorerForm.GetTreeViewItem(HtmlSource: String);
var
i: Integer;
CategoryDataStart, CategoryDataEnd: Integer;
CategoryTitleStart, CategoryTitleEnd: Integer;
BoardCount, BoardDataStart, BoardDataEnd: Integer;
BoardTitleStart, BoardTitleEnd: Integer;
BoardURLStart, BoardURLEnd: Integer;
S, CategoryData, CategoryTitle, BoardData, BoardTitle, BoardURL: String;
NiChanCategory: TNichCategory;
NiChanBoard: TNichBoard;
BaseTreeNode: TTreeNode;
CategoryTreeNode, BoardTreeNode: TTreeNode;
begin
//板一覧を表示させるベースとなるTTreeNodeを指定
BaseTreeNode := BoardListTree.Items.Item[1];
S := HtmlSource;
while true do
begin
if S = '' then break;
//CategoryDataを取得する
CategoryDataStart := AnsiPos('<B>', AnsiUpperCase(S));
if CategoryDataStart = 0 then break;
CategoryDataEnd := AnsiPos('<B>', Copy(S, CategoryDataStart+1, Length(S)));
CategoryDataEnd := CategoryDataStart + CategoryDataEnd;
if CategoryDataEnd = CategoryDataStart then
CategoryDataEnd := Length(S)
else
Dec(CategoryDataEnd);
CategoryData := Copy(S, CategoryDataStart, CategoryDataEnd - CategoryDataStart + 1);
if CategoryData = '' then Assert(false, '鰓');
Delete(S, CategoryDataStart, CategoryDataEnd - CategoryDataStart + 1);
//CategoryTitleを取得する
CategoryTitleStart := AnsiPos('<B>', CategoryData);
if CategoryDataStart = 0 then Assert(false, '鰓');
CategoryTitleEnd := AnsiPos('</B>', CategoryData);
if CategoryDataEnd = 0 then Assert(false, '鰓');
CategoryTitle := Copy(CategoryData, CategoryTitleStart,
CategoryTitleEnd+3 - CategoryTitleStart + 1);
//<B>...</B>からBタグを除去
CategoryTitle := Copy(CategoryTitle, 4, Length(CategoryTitle)-4 - 4 + 1);
if CategoryTitle = '' then Assert(false, '鰓');
316KB
新着レスの表示
スレッドリストへ戻る 全部 前100 次100 最新50
0ch BBS 2004-10-30