■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50

monazilla

93 :turbo type D@monazilla :2001/02/14(水) 12:07
Board一覧データの取得方法考えました。

クラスを作る
  //インスタンスが一つだけのクラス
  T2chBoardList class
    BoardCategorys: TList;//カテゴリのリスト
  end;

  //カテゴリごとのクラス
  TBoardCategory = class;
    Title: String;//【おすすめ】などのカテゴリ名
    BoardItems: TList;//カテゴリに属する板のTBordItemを保持
  end;

  //各板ごとのクラス
  TBoardItem = class
    Title: String;//板のタイトル
    Name: String;//板の英語名
    URL: String;//板のURL
  end;

--http://salad.2ch.net/bbstable.htmlのソースから
2chBoardListを生成

S := bbsSource;
CategoryDataStart := Sから【<B>を探索
CategoryDataEnd := Sから次の位置の【<B>を探索/見付からない場合は文末
CategoryData := SのCategoryDataStartからCategoryDataEndまで
CategoryDataが取得できなかったらエラー
SからCategoryDataは削除

CategoryTitleStart := CategoryDataから【<B>を探索
CategoryTitleEnd := CategoryDateから</B>】
CategoryTitle := CategoryDataのCategoryTitleStartからCategoryTitleEndまで
CategoryTitleが取得できなかったらエラー
BoardCategoryを生成2chBoradListに登録、タイトルに代入
CategoryDataからCategoryTitleは削除

BoardItemCount := CategoryDataの中ノ<Aと</A>の数を数える→一致しなければエラー
for i=0 to BoardItemCount-1 do
begin
  BoardItemDataStart := CategoryDataから<A HREF=を検索
  BoardItemDataEnd := CategoryDataから</A>を検索
  BoardItemData := CategoryDataのBoardItemDataStartからBoardItemDataEndまで
  CategoryDataからBoarItemDataは削除
  BoardItemDataは<A...>...</A>という文字列になっているので解析して
    リンク先とタイトルを取得する。
end;


94 :デフォルトの名無しさん :2001/02/14(水) 13:20
>>85
IEコンポは作成直後はHTMLDocumentがnilになってるからね。
innerHTML、outerHTMLを設定するんじゃなくてHTMLDocumentに
writeすれば問題ない。けど、フォントが変になったような気がする。
かちゅーしゃはHTMLにフォント設定を埋め込むことでこれを回避してるようだ。
>>87
(少なくともVC++/MFCでは)Navigateが非同期動作になるので、一旦Navigate
して、NavigateComplateかDocumentCompleteのイベントをトリガにする
必要がある。
まぁ、about:blankに飛ぶぐらいはすぐだろうから、WebBrowserのステータス
でループさせて終了を待ってもいいけどね。

あと、データアクセス層をきちんとつくっとかないと、マルチスレッドになって
複数のスレッドから同時にアクセスがあったときの処理が複雑になる。
Mutexで排他処理する部分は最小にしたいからね。

このような、ネットワークアプリは非同期処理との戦いになると思う。

95 :turbo type D@monazilla :2001/02/14(水) 13:23
>>85>>87
スマソ、追加で教えてキボーン
DispHTMLDocumentやWebBrowser_V11って何?


96 :turbo type D@monazilla :2001/02/14(水) 13:28
>>94厳しいな(TДT
浮津堕コーディングしよう。

97 :turbo type D@monazilla :2001/02/14(水) 13:50
>>93を考えていて>>28のクラスを再度確認してみた
T2chObjectっておかしくないか?
すべての基底クラスにダウソ開始/終了
なんていらないと思うのだが、
特にT2chResponseがT2chObjectから継承する
必要はないんじゃないか?

俺のクラス設計が甘いのか?わからない。

スレのダウンロードから
レス一つ一つのダウンロードメソッドを呼ぶ方がいいのか?


98 :デフォルトの名無しさん :2001/02/14(水) 14:29
俺もBCB4で似たようなの作ってるんだけどさ、
(勉強目的だから、VCLはUI以外は極力使わないようにしてるけど)
WebBrowserでNavigate2したときの表示がどうなってるかイマイチわからん。

スレを表示するとき、HTMLファイルを作ってNavigate2したときって
すごく速いんだよね。表示開始が。
これに対して、IHTMLDocument2のinnerHTMLをいじると、
表示開始までが遅い。全部解析してから1行目を表示している感じ。

1000近くあるスレで、insertAdjacentHTMLしながら、
適度にApplication->ProcessMessages()を含めてみると、
開示までの時間は問題無いが、終了までに余計時間がかかる。
それよりも気になるのが、表示されている様子が目に見えること。
Navigate2だと一瞬で表示されるのに、上から一行ずつ表示されているのが
見えるよう。
ProcessMessages()を呼ぶタイミングを動的に変更しても同じ気がする。

パイプでも使ってるのか、それともparent(IHTMLWindow2)に何かあるのか。
つーか、手元に資料が全然無くて、すげー苦労なんだけど。
MSHTML_TLB.hは15MBもあるし・・・

99 :turbo type D@monazilla :2001/02/14(水) 14:41
>>98
俺、まだNavigateとNavigate2の違いもわからん。
教えてくらさい。

98の話からすると、とりあえずファイルに書き出してから
読み込んだ方がいいって事か?

100 :turbo type D@monazilla :2001/02/14(水) 14:43
違いはURLにPIDLが使えるか否かだね。
で、PIDLって何だ?(w

101 :94 :2001/02/14(水) 15:10
>>96
似たようなアプリを書いた経験からだよ。

>>98
スレ100個分ぐらいのHTMLをつくって一気にinsertAdjacentHTMLすれば
いいんじゃない?それか、HTMLDocumentにwriteするとさらに速かったような
記憶がある(MFCでしかやったことないので適当に置き換えてね。COMの
インターフェイスだからそんなに違わないと思うけど)。
あと、OnNavigateCompleteとOnDocumentCompleteで発生するタイミングが
結構違ったような気がする。どっちが速かったかは覚えてない。

>>99>>100
PIDLじゃないと「マイコンピュータ」にNavigateすることができないね。

102 :98 :2001/02/14(水) 15:29
>101 遅さについて
いや、いろいろ試したんだ。
parse等の時間を全部無視して
50レスにしたり、100レスにしたり200にしたり、全部一括にしたり。
でも、やっぱりProcessMessages時だけ「表示」が遅いんだ。
(ちなみに、Sleep等も試したけど、表示されなかった・・・)
いや、俺のマシンが遅いのも原因だし、
「気にならない程度の遅さ」と言われれば、その通りなんだけど。

NavigateCompleteとDocumentCompleteは、確かRefreshが絡むと
面倒だったんだよね。って、俺も覚えてない。

そうそう、TWebBrowser_V1&NavigateはIE3、
TWebBrowser&Navigate2はIE4以降。

103 :98続き :2001/02/14(水) 15:31
フォントの問題は、
Create時にabout:blankにNavigate2しておいて、表示する時に
IHTMLDocument2Ptr doc; doc = browser->Document;
doc->charset = L"shift_jis";
doc->set_fgColor(0x000000);
doc->set_bgColor(0xEFEFEF);
doc->set_linkColor(0x0000FF);
doc->set_alinkColor(0xFF0000);
doc->set_vlinkColor(0x660099);
すれば、Win98SE+IE5.01の環境ではクリアできているけど、
IE5.5とかはどうなんでしょ?

Board一覧の取得は、俺もhttp://salad.2ch.net/bbstable.htmlを取ってる。
解析も同じ。('【'の検索)
【】の間をカテゴリ名として、board.txtを作ってる。
(2chブラウザと同じかな)
カテゴリ名の重複はそのまま放置し、読みこみ時に対応してる。
最後がindex2.htmlかを見て、2ch内部かどうか判断。
まちBBSは入らないが、datが取得できないのでそのままにしてる。

スレ一覧は、ListView→遅い、StringGrid→表示を停止させていても
一瞬待つのが嫌、という理由により、ListBoxのOwnerDrawにした。
(板によっては3000スレ近くがローカルにあり、マシンはPenII266)
表示終了までの時間はかかるが、動きが見えているので精神衛生上良い。
色を変えたりの小細工も出来る。
StringGridはスクロールバーが嫌だったのも理由の一つだけど、
まともなアプリを組んだ事のない素人なので、
やり方を知らないだけかもしれない。

104 :98 :2001/02/14(水) 15:40
連続でごめんなさい。
>>101をよく読んでなかった。
HTMLDocumentにwriteですか。ありがとうございます。
いろいろ試してみます。
・・・調べてみますと言えないのが悲しい。
サーチエンジンを使って、英語とも格闘して、試行錯誤します。

105 :デフォルトの名無しさん :2001/02/14(水) 16:04
>>103
>【】の間をカテゴリ名として、board.txtを作ってる。
>(2chブラウザと同じかな)
うんにゃ。<B></B>だよ。じゃないと、www.2ch.net/bbsmenu.htmlを読めない。


106 :turbo type D@monazilla :2001/02/14(水) 16:14
>>サンクス。
IE4以降限定でいいよね。

C++の人はDonut系ですか、すげ・詳しいな。

>>105
http://salad.2ch.net/bbstable.html
http://www.2ch.net/bbsmenu.html
どっちで取得するのが正しいの?
bbsmenu.htmlはメールリンクとかアってヤナ監事。

107 :デフォルトの名無しさん :2001/02/14(水) 16:15
んじゃコード規約(Delphi)を勝手に決めます。
コメントの書き方だけど

 //
 //   ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 //  ( ´∀`)< 文字列からほげほげを抜き出す
 //  (    )  \________________________
 //  | | |
 //  (__)_)
 //
 function ....

やっぱこんなの?
あ、Delphiのエディタじゃ AA 無理だっけ?

108 :デフォルトの名無しさん :2001/02/14(水) 16:27
end.の下の行は

//============== 終了==============

をつける。意味ないけど。

109 :98>105 :2001/02/14(水) 16:52
その通りっす。すみませんです。
さらに、カテゴリの重複→カテゴリの連続っす。

あれから少し調べると、
SAFEARRAYとか、SafeArrayCreateVector()とか、更に未知の物が。
が、close:
 Closes an output stream and forces the sent data to display.
なんて文も見かけたので、併せてもっと調べてみます。

110 :turbo type D@monazilla :2001/02/14(水) 16:53
>>107 実に助かるよ。
仕事中にコーディングしていると、ぶっ殺されそうだ。(ww

モナーのセソフ
機能の説明だけだと、わかりにくいから
更新履歴と引数/戻り値の説明も
入れれるようにしてプリ〜ズ

//============== 終了==============

111 :turbo type D@monazilla :2001/02/14(水) 17:13
等幅フォントだと、こんなもんかな?

//
// ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
// (´∀`)< ボードの一覧をhttp://salad.2ch.net/bbstable.htmlより得る
// (    ) \________________________
//  | | |
// (__)_)
//
しかし、このコメントがついてたら
まじで周りにビクビクしながらコード書かなきゃいけないから
すげー疲れる(w


112 :デフォルトの名無しさん :2001/02/14(水) 17:31
等幅でもずれとりまんがな。空白が寄せられただけ?
ところで、94さんは2chブラウザーの作者さんのような気がするけど、違うのかな?

113 :デフォルトの名無しさん :2001/02/14(水) 17:45
>>112 違わないよ。

114 :98 :2001/02/14(水) 18:08
かなり戻るけど、>>93のTBoardCategoryは必要ないと思う。
というのは、いずれ、貼りつけられたスレへのリンクからTBoardItemを
検索したくなるだろうから。
鯖移転にも対応するために、板名で検索できること
(さらに、mac板やbike板に対応すること)を考えると、
TBoardItemはどっかでまとめて持ち、
TreeNode->Dataに細工するのがいいと思う。

もしかしたら参考になるかもしれないので、
俺の使っている部分をそのまま載せます。
VCLも知らないので、批判もよろしく。

Board型はstaticメンバーで全体を保持。
Board::BoardCount()で全板数、
Board::At()で順アクセス、Board::Find()で検索、etc
Boardのインスタンスは、Name()がnilならカテゴリ名、
Name()の中身があればそれぞれの板。
stringとSTLを使っているのは、それらの勉強も目的だから。

 TTreeNodes *tree = BoardTree->Items;
 tree->Clear();
#if 0
 TTreeNode *root = tree->Add(NULL, "2ちゃんねる");
 //root->Data = NULL;
#else
 TTreeNode *root = NULL;
#endif
 int n = Board::BoardCount();

 string catename;
 vector<Board *> boards;

 for (int i = 0; i < n; ++i) {
  Board *bd = Board::At(i);
  if (bd->Name().empty()) {
   if (!boards.empty()) { //カテゴリ名の連続に対処するため
    TTreeNode *cate = tree->AddChild(root, catename.c_str());
    cate->Data = NULL;
    vector<Board *>::iterator it;
    for (it = boards.begin(); it != boards.end(); ++it) {
     TTreeNode *tmp = tree->AddChild(cate, (*it)->Title().c_str());
     tmp->Data = *it;
    }
   }
   boards.clear();
   catename = bd->Title();
  } else {
   boards.push_back(bd);
  }
 }

115 :turbo type D@monazilla :2001/02/14(水) 18:57
>>114
>TBoardCategoryは必要ないと思う。
ほっほー、そうなん。

mac板、bike板ってなんだろけ?

でも、もう殆ど実装してまった(゚Д゚)・・・・・・・
ま、データを保持するクラス階層は変更して
TreeViewの生成だけに利用するよ。
かちゅしゃーでも一応右端の色でわかれてるからなあ。
Boardクラスにカテゴリプロパ付けるだけで十分か?

それともTreeViewのTreeNodesとTreeNodeみたいに
データ構造をツリーと一覧の二通りのアクセスかましておきます。
98さんはVCL知らないか。

今日中に一覧をTreeで表示させたかったが、無理だわ。
また先ですわ。

116 :turbo type D@monazilla :2001/02/14(水) 19:04
かちゅしゃは右端じゃなくて左端でした
あせって左右もわからなくなってる。

98さんはVCLバリバリ使ってる気がするが,,,

117 :デフォルトの名無しさん :2001/02/14(水) 20:06
macとbikeってのはこれっす。
Mac
http://piza.2ch.net/mac/
mac
新Mac
http://teri.2ch.net/mac/
mac
バイク
http://tako.2ch.net/bike/
bike
自転車
http://mentai.2ch.net/bike/
bike

http://teri.2ch.net/test/read.cgi?bbs=mac&key=999999999
なんてのから板を特定するときに、'teri'の文字も必要だってことっす。

118 :デフォルトの名無しさん :2001/02/14(水) 22:20
>>103
ListViewは速くはないけど、Delphi4から導入されたVirtualModeを使えば、そんなに遅くないです。
でもこれだとオーナードローする必要があり面倒です。
ちなみに、どうせオーナードローするならStringGridよりDrawGridの方が多少速いです。
もっとも上にあげたものは全てTListからのオーナードローになると思うので、どれでも十分な
速さですけど。
実は、オレも作成中だったりして。

119 :28のクラス書いた人 :2001/02/14(水) 22:34
しばらくこないうちにだいぶ進んだなぁ。
個人的にはhtml,datダウソ部分の構造が先に知りたいです。
>97 名前:turbo type D@monazilla投稿日:2001/02/14(水) 13:50
>>93を考えていて>>28のクラスを再度確認してみた
>T2chObjectっておかしくないか?
>特にT2chResponseがT2chObjectから継承する
>必要はないんじゃないか?
T2chResponseは(既にある)T2chThreadの各レスにアクセスするため窓口だから
確かにダウソ開始/終了はいらないね。
いらないけどダウンロード可能・不可能をクラスで分類すると
数が増えて嫌だったというだけ。
まあレスをクラス化してT2chThreadのプロパティにすること自体は必要でしょ。

>すべての基底クラスにダウソ開始/終了
>なんていらないと思うのだが、
T2chResponse以外はダウソ開始・終了が必要でしょ。

>// ダウンローダ
>T2chDownloader = class(T2chObject)
>private
> FQueue: TObjectQueue; // スタックのがいいかも??
>public
この部分はdequeにして、ユーザーのクリックを優先的に処理して(stack)、
巡回を後回しに(queue)するのがいいかも。
マルチスレッドによる複数同時処理は
全部このクラスの内部に隠蔽しちゃえばすっきりすると思う。
とりあえずシングルスレッドで実装しといてあとで増やすこともできるし。

あとT2ch(Downloadable)Object自身に
巡回スケジュール&履歴プロパティがあるとよいかも。

turbo type D@monazillaたんがむばってね。

120 :デフォルトの名無しさん :2001/02/14(水) 22:45
>>118
OwnerData使うだけで速いよ、OwnerDrawする必要なんてない。


121 :turbo type D :2001/02/14(水) 23:48
むずかしいなーー、絶対ムズイよ。>>119
ある程度の所まで実装してアプしたら、
みんなさん、頼みまっせ。

htmlダウソならコンポつかっちゃってるけどそれじゃだめ?

ダウソドーロは全部スレッド化しろってぇ。難しいなあ。

122 :turbo type D :2001/02/15(木) 00:01
StringGridのスクロルバーは何とかできるが
マルチセレクトと非選択をやろうとするとだるい。

かちゅしゃと同様なUIだと
スレ表示されていてマルチセレか非選択状態ってのは
必要ないとも思える。

しかし、3000は厳しいな。

123 :ヒロユキ@ギコナビ :2001/02/15(木) 00:16
>>122
120さんも言っているけど、ListViewのOwnerDataを使うと簡単便利で高速だよ。
件数もあんまり関係ないし。
ギコナビもOwnerData。


124 :デフォルトの名無しさん :2001/02/15(木) 00:19
テクニシャンな方々はここだけでもコテハンきぼん。
特に 119 さん、なんかハンドル使ってください。

125 :turbo type D :2001/02/15(木) 00:24
>>124
そういう貴方も、コテハンを(・w・

126 :書記さん :2001/02/15(木) 00:34
>>125
すんづれぇーしました。書記さんです。
ジオのページ立ち上げた張本人です。
なお、ただいまぜんぜん役に立たないドキュソ、、、
じゃなくてドキュメントつくってます。

127 :書記さん :2001/02/15(木) 00:47
とりあえず資料をアップしてみました。
つーか全部こぴぺなんだけど。
http://www.geocities.co.jp/SiliconValley-Oakland/9028/

128 :デフォルトの名無しさん :2001/02/15(木) 00:48
http://www.geocities.co.jp/SiliconValley-Cupertino/1858/
とりあえず一連の流れだけのヤツを作ってみたぞ。オレ様はWininetでマターリと逝く。
ちなみに、クラス設計はボロボロ。
なんと言っても、クラス設計はコード書きながらやったからな(今後はちゃんと設計する)。
あまり期待はしないで頂戴な。

129 :書記さん :2001/02/15(木) 01:00
>>128
opengiko.res が見つからないってエラー出た場合は炒ってよしですか?
(Delphi 5 Pro)

130 :デフォルトの名無しさん :2001/02/15(木) 01:02
>>129
ありゃ、D5はリソースファイルがいるのか。
自動的に作られるんじゃないの?が〜ん。

131 :書記さん :2001/02/15(木) 01:06
ボタンの絵とかがからぽでした、
にしてもなかなか動作の感じは良かったです。


132 :デフォルトの名無しさん :2001/02/15(木) 01:08
ボタンの絵とかは募集中だ!

133 :書記さん :2001/02/15(木) 01:10
あ、そういうことでしたか、>>募集中

・ホームページ管理人募集。

これは私が引き受けてもいいです。

134 :デフォルトの名無しさん :2001/02/15(木) 01:13
んじゃ、決定だ。頼む。
掲示板にftp関係のは書いておく。しばし待たれよ!

135 :デフォルトの名無しさん :2001/02/15(木) 01:16
書いたぞ!ゴルァ!

136 :デフォルトの名無しさん :2001/02/15(木) 01:18
明日も仕事だ。もう寝る。

137 :turbo type D :2001/02/15(木) 01:29
ボタンの絵などは、オプソっぽく自由に設定しろという方式はダメかナー

138 :turbo type D :2001/02/15(木) 01:31
各種コンポーネントのインストール方法(特にHTTPCLIやIndy)
の説明をキボぅ,(なるべく多くの人が参加しやすくなるから)

139 :turbo type D :2001/02/15(木) 01:33
関係ないけど
monazillaよりモナプロ〜ラ〜やギコプロ〜ラ〜の方が
いいというような思いも…センスナイっすか?

140 :デフォルトの名無しさん :2001/02/15(木) 01:49
面白そうなことやってますね〜。
一応Delphi,C++Builder使いだけど、スキルがないから参加は無理っぽそう(汗

141 :turbo type D :2001/02/15(木) 02:00
とりあえず暫定Main.dfm/Mail.pas(3ペインの画面だけ)
をアプしたいけど、アプ板どこかないかな。

>>140
そういわずに、俺もスキルナイナイから安心せ。

142 :デフォルトの名無しさん :2001/02/15(木) 02:39
とりあえず、HTTPCLIもIndyもいらんと思うのだがどうか。

143 :デフォルトの名無しさん :2001/02/15(木) 02:53
「>>」の扱いはどうするの?

144 :turbo type D@monazilla :2001/02/15(木) 10:01
>>142
>>88を見てくださいな。置き換え可能を意識してコード書いておきましょう。
TWebBrowserだけで出来るって事かな?Wininet?
表示せずにHTMLソースをダウソするのはどうするの?

>>143
HintWindowとリンクをつけたいね。

145 :デフォルトの名無しさん :2001/02/15(木) 11:17
>>141
アップロードする方法は

以下を切り取ってローカルファイルとして保存すれば簡単
なお、既に同名のファイルがあるかどうかは自分で注意する事

<HTML> <HEAD> <TITLE>monazillaアップローダ</TITLE></HEAD> <BODY>
<FORM action=http://tools.geocities.co.jp/cgi-bin/members/file_manager encType=multipart/form-data method=post>
<INPUT TYPE="hidden" NAME="member" VALUE="monazilla">
<INPUT TYPE="hidden" NAME="passwd" VALUE="8EYNK=LO;3QTkEyPaPg">
<INPUT TYPE="hidden" NAME="fulladdress" VALUE="SiliconValley-Oakland/9028">
<INPUT TYPE="hidden" NAME="subdirectory" VALUE="src">
<INPUT TYPE="hidden" NAME="email" VALUE="monazilla@usa.net">
<INPUT TYPE="hidden" NAME="geoextras" VALUE="YN4<">
<INPUT TYPE="hidden" NAME="timestamp" VALUE="982202865">
<INPUT name=extlist type=hidden value=-1>
<INPUT name=lowercase type=checkbox> ファイル名を自動的に小文字に変換<BR>
<INPUT name=addhtml type=checkbox> 拡張子".htm"を".html"に自動的に変換<BR><BR>
<INPUT name=userfile size=80 type=file><BR><BR>
<INPUT type=submit value=アップロード>
<INPUT type=reset value=クリア><BR></FORM>
</BODY></HTML>


146 :turbo type D@monazilla :2001/02/15(木) 11:35
>>145
これでどこにアプされるの?

147 :145 :2001/02/15(木) 12:05
>>146
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/アプファイル名


148 :デフォルトの名無しさん :2001/02/15(木) 12:35
>>144
WinInetはwebBrowserと関係なく単独で使える
WebBrowserが使えるなら普通 WinInetも使えるという意味
使い方は こっちのリンクから
http://piza.2ch.net/test/read.cgi?bbs=tech&key=970606624&st=306&to=308&nofirst=true

Cのサンプルだが使い方はこれ見れば簡単
http://tokyo.cool.ne.jp/masapico/api_sample_inet04_c.html


149 :デフォルトの名無しさん :2001/02/15(木) 12:37
>>144
TWebBrowser使える環境ならURL Moniker使えるでしょうし。


150 :デフォルトの名無しさん :2001/02/15(木) 12:42
>>149 それ教えて  MSDN入ってるのに俺馬鹿だから 日本語資料が無いと全然理解出来なくてさ

151 :turbo type D@monazilla :2001/02/15(木) 12:51
俺もわからん。>>149>>148

なるべく標準コンポ以外は使わない方向の方がいいのか?
でもそれで生産性が落ちるのはちょっと。

ユニット化して
function GetHTMLPageSource(URL: String): String;
こんな仕様で作ってくれれば
誰でも知っているやつが好きなように内部実装できると思うのだが。




152 :デフォルトの名無しさん :2001/02/15(木) 13:42
正直なところ、コンポーネント入れてまでという気はするな。
ソース配布されてても気楽に試しにくいのだよね。

153 :デフォルトの名無しさん :2001/02/15(木) 13:55
>>150
ここのサンプル見るってのでは駄目?

http://msdn.microsoft.com/downloads/samples/internet/browser/walkall/default.asp


154 :デフォルトの名無しさん :2001/02/15(木) 14:16
>>152
同意。標準コンポで逝きましょうや。

155 :turbo type D@monazilla :2001/02/15(木) 14:36
俺も昔はそう(標準コンポ好き)だったけど、今は

     コンポぐらいインストシロヤ(゚Д゚)ゴルァ

っていいたいぞ。厨房じゃあるまいし
例えばブラウザ作る際に
VCLでUIWebBrowser使わないウマシカもいないだろ。

HTTPダウソならNMHTTPでも簡単だし。
一段落したら標準コンポ版も作っていいけど
NMHTTPバグだらけだから嫌だ

156 :デフォルトの名無しさん :2001/02/15(木) 15:02
>>155
既にWininetで動作してるのに、何故コンポーネントが
必要なのかわからなかっただけ。
まぁ、厨房でウマシカな俺には考え及ばない理由があるのだろうね。

157 :書記さん :2001/02/15(木) 15:07
おそーなった。
とりあえずコテハンきぼん>デフォルトの名無しさん 156

158 :154 :2001/02/15(木) 15:08
ライセンスがらみがうぜぇとか、マイナーすぎて入手し難いのはちょっとねぇ
とかいう理由で言ってみたただけ。

とはいえ、さすがにNMHTTPはつかわんでいいと思う(藁

159 :書記さん :2001/02/15(木) 15:14
>>139
>monazillaよりモナプロ〜ラ〜やギコプロ〜ラ〜の方が
>いいというような思いも…センスナイっすか?

あ、モナプロ〜ラ〜いいですね。
monazillaはオープンソースのプロジェクト名で
プログラム名はおのおの好き勝手つけちゃってください。
ってのはどう?

160 :書記さん :2001/02/15(木) 15:15
>>158
NMHTTPは確かにちょいといただけないねー。
フリーで入手可能なコンポならなんでもいいけどねー。

161 :見物人 :2001/02/15(木) 15:27
>>159
それに賛成。


162 :書記さん :2001/02/15(木) 15:31
>>161
では可決。
monazillaプロジェクトはいま、アクティブなのは以下の二つ?

1.オープンギコ (Delphi 4 + Wininet)
2.モナプロ〜ラ〜 (turbo type D : Delphi 5 + TWebBrowser + HTTPCLI?)

VC、BCB、VBもしなやかに参加してくれ!

163 :turbo type D@monazilla :2001/02/15(木) 15:31
聞いてアロエリーナ ちょっと言いにくいんだけど
聞いてアロエリーナ

>>156さんごめーんネ

聞いてくれてあーりがと アロエリーナ♪
\______ __________/
          |/
         ∧_∧
   Ψ    (∀・  )
   □    (∩∩ノ ) オレガWininetツカエナイダケダッタリシテ
  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄


164 :書記さん :2001/02/15(木) 15:33
書記さんもなぜか Wininetが環境にひどく依存するような先入観を持ってた・・・

165 :turbo type D@monazilla :2001/02/15(木) 15:33
>>159マンセー
>>162シナヤカ長野県

HTTPCLIはギコナビでオレIndyのIdHTTP

166 :書記さん :2001/02/15(木) 15:36
>>165
あ、しつれーしました。

モナプロ〜ラ〜 = Delphi 5 + TWebBrowser + Indy


167 :デフォルトの名無しさん :2001/02/15(木) 15:44
>>164 あながち間違いでもありません
IE4でメモリリーク
IE5で日付問題
とトラブルがあるようです。が、じゃ他の方法は無いのかというと
採用例が少なくて表面化してないだけの可能性大

168 :名無しさん :2001/02/15(木) 15:44
結局収拾つかなくなったのか。

169 :デフォルトの名無しさん :2001/02/15(木) 15:47
>>167
メモリリークなんてIWebBrowser使う時点で諦めてる。

170 :書記さん :2001/02/15(木) 15:48
>>167
なるほど。
とりあえず モナプロ〜ラ〜 は Indy で、
オープンギコ は Wininet でやるっつーことで決定しましょ。
同じコンポ使って別々に書くわけじゃないから問題無いでしょー。


171 :デフォルトの名無しさん :2001/02/15(木) 15:49
>>169
いまどきの子はメモリリークぐらいじゃびっくりしません。

172 :書記さん :2001/02/15(木) 16:08
>>138
とりゃーず HTTPCLI のインスト方法だけアップしました。
投げやりのやっつけですが。。
Indyはまだ書記さんもセットアップしてないので待ってー

173 :turbo type D@monazilla :2001/02/15(木) 16:35
原因不明のuser32.dll落ち連続...でトレース実行が不可能になって
しまった。(TДT)DelphiIDEショボっ!

とりあえずmonaplorerの標準コンポだけの画面周りだけアプしましたよ
D5だと誰でも開けると思う
http://tools.geocities.co.jp/cgi-bin/members/file_manager
これでアプアプできたのかな?
145>>サンクス



174 :turbo type D@monazilla :2001/02/15(木) 16:40
こっちでした。
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/monaplorer.lzh

175 :書記さん :2001/02/15(木) 16:44
http://www.geocities.co.jp/SiliconValley-Oakland/9028/
にもアップロード用のフォームつけておきました。


176 :デフォルトの名無しさん :2001/02/15(木) 16:49
「これをかっこよくクリック」は不覚にもワラタ

177 :デフォルトの名無しさん :2001/02/15(木) 16:53
>175
ジオ以外のところからアップロードさせないと巧く行かないから
別の所にアップローダを作るか、

アップロードフォームの所に一旦保存してからローカルに動かせって
 注意書きを書いた方がいいよ。



178 :書記さん :2001/02/15(木) 16:56
>>177
げ!そうなん!?ちょーしっぱい。。

179 :書記さん :2001/02/15(木) 17:12
ローカルに保存してアップしてもらうようにしました。


180 :デフォルトの名無しさん :2001/02/15(木) 18:50
>179 ジオだったら アップロードした人がゲストブックに説明書くようにしたらどうだ?

181 :書記さん :2001/02/15(木) 19:20
あいよ!その案採用!
ゲストブックつけました。
煽り禁止
http://www.geocities.co.jp/SiliconValley-Oakland/9028/

182 :デフォルトの名無しさん :2001/02/15(木) 20:19
書記さん 手数だが、ゲストブックにコメントで書かれる
&lt;!-- REMOTE ADDR: xxxxxxxx --&gt;
をタマには消す事にしておくれよ
別に残して困る事はないが、恥ずかしいからのう

183 :書記さん :2001/02/15(木) 20:22
>>182
いま、それに気がついたのでゲストブックを停止ー、
だれかフリーでリモートホストが出ない BBS 見つけてーー

184 :デフォルトの名無しさん :2001/02/15(木) 21:04
リモホが出ても、タマに消すよ程度でOKだよ。
どうしてもってんなら 日記を使ったらどう?
日記もファイルアップロードと同じ方法でいける筈

185 :デフォルトの名無しさん :2001/02/15(木) 21:43
こんな感じだろうと思う
<FORM METHOD="POST" ACTION="http://tools.geocities.co.jp/cgi-bin/members/dbook_wr">
<INPUT type=hidden NAME="member" VALUE="monazilla">
<INPUT type=hidden NAME="passwd" VALUE="mona">
<INPUT type=hidden name="state" VALUE="0">
<INPUT type=hidden NAME="fulladdress" VALUE="SiliconValley-Oakland/8522">
<input type=hidden NAME="subfontsiz" VALUE="5">
<input type=hidden NAME="subbgcolor_select" VALUE="0000FF">
<input type=hidden NAME="subforecolor_select" VALUE="FFFF00">
<input type=hidden NAME="conbgcolor_select" VALUE="FFFFFF">
<input type=hidden NAME="conforecolor_select" VALUE="000000">
<INPUT TYPE=hidden NAME="style" VALUE="1">
<INPUT NAME="subject" VALUE="title" SIZE=40 MAXLENGTH=80><BR>
<TEXTAREA NAME="content" rows=15 cols=40>内容</TEXTAREA>
<INPUT TYPE="submit" VALUE=" 送 信 ">
<INPUT TYPE="submit" NAME="PREVIEW" VALUE="プレビュー">
<INPUT TYPE="reset" VALUE="リセット">
</FORM>

186 :デフォルトの名無しさん :2001/02/15(木) 21:46
×8522
○9028

187 :185 :2001/02/15(木) 21:50
ミスしたおかげで、思わぬジオの穴を見つけてしまった。
member と fulladdressの管理は別らしい。やれやれ

188 :ヒロユキ@ギコナビ :2001/02/16(金) 00:21
今、ギコナビのBoard.iniをXML化する予定。(あくまで予定)
その部分をmonazillaと共有させてもらいたいです。
もちろん、XML読み込みの部分のソースは公開します。
まだ、構想段階なので、マターリとやっていますけど。
ボード関連で、manazillaは、どういうふうに考えていますか?

あと、ギコナビで苦労した部分は、ローカルに保存してあるデータ(タイトル情報)を
読み込む部分です。
起動時に全部読み込めば、時間が掛かるし、起動時に読み込まなければ、
巡回のデータが無いので、巡回出来ないし。
単に、ダウンロードしたsubject.txtを毎回読むとなると、時間が掛かります。
ギコナビはindex.datファイルを作り、高速化を図っています。
これも、普通のピュアテキストだと遅いし、固定長だと容量が食いすぎます。
(Recordだとタイトルなどは文字列のため、Delphiだと255文字固定の制限もついてしまいます)

ギコナビでは、数値データはRecord。文字列は文字列長&文字列でガリガリ書いています。
ただし、これもバージョンアップで項目が増えた場合に問題が出てきます。
(ふるいバージョンのデータを読み込む機能が必要)
ストリーム化での方法は、バージョンアップでの対応が出来なさそうだったので、却下でした。
結構重要な部分(実際ギコナビでは、かなり時間をかけた)なのですが、monazillaでは、
どうする予定でしょうか?


189 :turbo type D :2001/02/16(金) 00:26
そういう難しいことは決まってないに
2億はらたいら。お願いしまsう。

190 :フッサール少佐 :2001/02/16(金) 00:31
高速化をするには、当然index化はするでしょう。
indexはバイナリファイルをTStreamでガリガリやるのが一番速いです。
さらにキチ○イのような速度を追求するなら、Streamのバッファリング
も行います。moveしまくりで、これがDelphiのソースなのか…という
状態になりますが。それにindexのバージョンアップに多少の問題は残りますー。

バイナリファイルにAnsiString型を格納するには、その文字列長の
情報が必要になります。まだ先の話ですけどね。まずは、基本機能
がまともに動かないといけません。


191 :デフォルトの名無しさん :2001/02/16(金) 00:48
HP
がJazillaのパクってて笑った!
http://jazilla.sourceforge.net/

192 :ヒロユキ@ギコナビ :2001/02/16(金) 00:53
ギコナビの(公開以前のバージョン)DatからHTML変換。
ソース書き込むところが分からなかったから、ここに書きます。
今、ギコナビソースのマシンじゃないから古いソースでごめん。眠いし。
もしかしたら、足らないメソッドとかあるかも。
厨房ソースでごめん。現在のソースはだいぶ変わっていたと思う。

function TGikoSys.DatToHtml(bbsid: string; filename: string;): string;
var
i: integer;
no: string;
mailto: string;
name: string;
datetime: string;
body: string;
readdat: TStringList;
textcolor: string;
backcolor: string;
html: string;
begin
result := '';
filename := GikoSys.GetThreadFileName(bbsid, filename);
readdat := TStringList.Create;
try
readdat.LoadFromFile(filename);
ParseDatLine(readdat[0], title, mailto, name, datetime, body);
title := StringReplace(title, ',', ',', [rfReplaceAll]);
saveList := TStringList.Create;
textcolor := Format('%.8x', [Setting.BrowserFontColor]);
backcolor := Format('%.8x', [Setting.BrowserBackColor]);
textcolor := '#' + Copy(textcolor, 7, 2) + Copy(textcolor, 5, 2) + Copy(textcolor, 3, 2);
backcolor := '#' + Copy(backcolor, 7, 2) + Copy(backcolor, 5, 2) + Copy(backcolor, 3, 2);
html = '<html><head>'
+ '<meta http-equiv="Content-Type" content="text/html; charset=x-sjis">'
+ '<title>' + title + '</title>'
+ '</head>'
+ '<BODY TEXT="' + TextColor + '" BGCOLOR="' + BackColor + '" link="#0000FF" alink="#FF0000" vlink="#660099">'
+ '<dl>'
+ '<font size=+1 color="#FF0000">' + title + '</font>';
for i := 0 to readdat.Count - 1 do begin
if (Trim(readdat[i]) <> '') then begin
no := IntToStr(i + 1);
DivideStrLine(readdat[i], title, mailto, name, datetime, body);
mailto := StringReplace(MailTo, ',', ',', [rfReplaceAll]);
name := StringReplace(Name, ',', ',', [rfReplaceAll]);
body := StringReplace(Body, ',', ',', [rfReplaceAll]);
body := StringReplace(Body, '&amphearts;', '&hearts;', [rfReplaceAll]);
body := StringReplace(Body, '&amp#', '&#', [rfReplaceAll]);
//Body := ConvHtmlLink(Body);
{&lt;&gt;&quot;&amp;}
if mailto = '' then begin
html = html + '<dt>' + No + ' 名前:<font color="forestgreen"><b> ' + Name + ' </b></font> 投稿日: ' + DateTime+ '<br><dd>' + body + '<br><br><br>';
end else begin
html = html + '<dt>' + No + ' 名前:<a href="mailto:' + MailTo + '"><b> ' + Name + ' </B></a> 投稿日: ' + DateTime+ '<br><dd>' + body + '<br><br><br>');
end;
end;
end;
Result = html + '</body></html>';
finally
readdat.Free;
end;
end;


317KB
新着レスの表示

スレッドリストへ戻る 全部 前100 次100 最新50

0ch BBS 2004-10-30