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

monazilla

275 :フッサール少佐 :2001/02/18(日) 12:26
え?subject.txtって全部同じフォーマットじゃないんですか。が〜ん。
できれば、詳細キボン。

276 :98 :2001/02/18(日) 13:50
98としてはお久しぶりです。

subject.txtの形式は、
teriとbinboが、<>区切り、他は','区切りです。
<>区切りの場合、<>の後に1つ空白が入ります。
最後につくレス数は、
teri系  <レス数>
tako   (レス数)(←全角、perl板だけかも)
その他  (レス数)
になっています。
レス数の前に、空白が沢山場合が多々あります。

dat内部は、全て&ampを一文字の&に要変換。
さらに、teri系以外は'@`'を','に変換します。

デリミタは、teri系が<>区切りで、最後の<>の後に空白が一つ、
他は','区切りで最後の空白なし。
また、メール欄が空白の時は区切り文字が連続しますが、
何か文字が入っていると、余分に空白が一つ付くようです。

タイトルの長さは、最近のサーバーなら全角24文字の制限があり、
空白不可のようですが、
takoははるかに長いタイトルが可能で、タイトルが空のスレもあります。
また、www.2ch.netにあったスレが残っているような板も
長いタイトルがある可能性があります。

あぼーんされた行は
teri系  あぼーん<>あぼーん<>あぼーん<>あぼーん<>あぼーん
tako   あぼーん,あぼーん,あぼーん,あぼーん
その他  あぼーん,あぼーん,あぼーん,あぼーん,
となり、スレの1だった場合、タイトルが空白になります。
(takoは、デリミタが足りなくなるので要注意)
また、板の復帰後はsubject.txt内のタイトルも空白になります。

とりあえず、こんなところでしょうか。

277 :フッサール少佐 :2001/02/18(日) 14:35
>>276
おお、ありがとう。98。
ウチに来てくれたらうまい棒をあげるよ。

278 :turbo type D :2001/02/18(日) 15:03
全然わからん。(w
>>276

またいずれわかるかな。

279 :98 :2001/02/18(日) 15:08
訂正。
「メール欄に何か入ると最後に空白が1つ付く」は、
つい最近のスクリプト変更でそうなったみたいです。
古いログには
>名無しさん,sage,2000/xx/xx
がたくさんあり、ここ1ヶ月程のログはすべて
>名無しさん,sage ,2001/xx/xx
になってます。
また、teriは
>名無しさん<>sage<>2001/xx/xx
のままみたいです。

追記。
稀にdat内に'\0'が入っている場合があるので要注意です。
書きこみ内容に'\0'が含まれると、そのままdatに入ってしまうようです。
http://teri.2ch.net/accuse/dat/972022159.dat
長いですが、211と213に'\0'があり、さらに文章が続いています。

また、文字化けの場合も少々注意が必要です。
(最近は直ったらしいのですが、以前名前欄に「初級」等と入れると
見事に化けていました)
単に化けるだけならそのままで良いのですが、化けた後の最後の文字が
SJISの1バイト目になります。
なので、無視して<B>名無しさん</B>のつもりでHTMLにすると、
<B>ヘ・猿"・/B>等とります。
http://mentai.2ch.net/os/dat/977641.dat

280 :98 :2001/02/18(日) 15:29
さらにおもくそ訂正。
http://mentai.2ch.net/os/dat/977641.dat
(http://mentai.2ch.net/test/read.cgi?bbs=os&key=977641&to=5)

その他、例外としては、
http://piza.2ch.net/tech/dat/974514695.dat
(http://piza.2ch.net/test/read.cgi?bbs=tech&key=974514695&to=5)
の2なんてのもありますが、
こんなのが幾つもあるとは思えないので、エラー扱いでいいかも。

281 :98 :2001/02/18(日) 15:32
何やってんだろ、俺
http://mentai.2ch.net/os/dat/977641.dat
つーか、ちゃんとやったつもり。
一応全角でも。os板の977641.dat

282 :98 :2001/02/18(日) 15:36
ごめん、本当に9-7-7-0-7-0-6-4-1.datって
(ブラウザから)書き込んでるつもりなんだけど、なぜか変化する。

283 :書記さん :2001/02/18(日) 17:16
>>267
SOURCE FORGE、なかなかよさげですね。
http://sourceforge.net/


284 :turbo type D@monazilla.org :2001/02/18(日) 18:39
ボード一覧のbbsmenu.htmlとbbstable.htmlどちらかれも

以下のような条件判断をして
2chBBSリンクだけ取り出せた。

    //mailtoリンクならボードではないので無視
   if AnsiPos('<A HREF=MAILTO', AnsiUpperCase(BoardData) ) <> 0 then continue;

    //'.2ch.net/'が含まれていない場合、2ch板ではないので無視
   if AnsiPos('.2CH.NET/', AnsiUpperCase(BoardData) ) = 0 then continue;

    //'www.2ch.net/'なら板ではないので無視
   if AnsiPos('WWW.2CH.NET/', AnsiUpperCase(BoardData) ) <> 0 then continue;

    //'index2.html'が含まれていないのなら板ではないので無視
   if AnsiPos('/INDEX2.HTML', AnsiUpperCase(BoardData) ) = 0 then continue;


285 :turbo type D@monazilla.org :2001/02/18(日) 18:40
オレもsubject.txtの読み込みにとりかかろっと。

286 :デフォルトの名無しさん :2001/02/18(日) 18:52
HTMLパーサって使わないの?
まともなのがないから?

287 :turbo type D@monazilla.org :2001/02/18(日) 18:58
使い方教えてくれたら使うよ。オレや他の人が知らないだけかもね。

288 :98 :2001/02/18(日) 19:00
>>276を、もひとつ訂正。
&ampを&に変換です。
何故か &amplt;や&ampgt; となっている部分があるので。
ブラウザは単発の&を表示してくれるので全部無条件に変換してますが、
単純な全置換だと不具合が出るかもしれません。

>>284
http://2ch.binboserver.com/entrance/
http://2ch.server.ne.jp/2ch/rikei/
等もあります。

ついでにねすけ+串でてすと
-
977641―977641

289 :98 :2001/02/18(日) 19:02
うむ、何故か0-7-0が消されてしまうやうだ。荒らし対策かな?
datにも残っていので、書きこみ時に消されてしまうやうだ。

290 :デフォルトの名無しさん :2001/02/18(日) 19:11
半角スペース->&nbsp機能つけてね > all

291 :turbo type D@monazilla.org :2001/02/18(日) 19:14
monaplorerアプしましがた
あいかわらず、DL出来るファイル一覧を見る方法がわからないです。

http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/monaplorer.lzh

直リンはこちら

292 :書記さん :2001/02/18(日) 20:00
>>291
えっと、Monazilla Studioを入れているならそれ表示して
「ダウンロード、つーかファイルマネージャ起動」をクリックして
「入ってよし」をクリックしてジオにログイン、で、「src」ボタンクリックで
アップされているソース一覧が出ますので、そこで確認してください。

293 :turbo type D@monazilla.org :2001/02/18(日) 20:37
書記さん、サンクス。

294 :フッサール少佐 :2001/02/18(日) 20:42
オンラインとオフラインを設けた。
オンラインモードははdat→htmlをまともに作れば、とりあえず基幹は完成じゃないかな。
全部上書きしちゃうけど。
http://www.geocities.co.jp/SiliconValley-Cupertino/1026/
どう?

295 :turbo type D@monazilla.org :2001/02/18(日) 21:08
がんばっておるねー。(w

オフ/オン、モードわけ、俺も考えておこ。

そのまえに、スレ一覧表示を実装しないとナー

296 :turbo type D@monazilla.org :2001/02/18(日) 21:09
そうそう、コード規約みたいなものを書いていました。

ユニットヘッダ
(*
//  ∧  ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
// (´∀`)< モナプロ〜ラ〜のソースだモナー
// (    ) \________________________
//  | | |
// (__)_)

01/02/18 モナーアスキーをいれてみました。
履歴をつけてみました。
//*)

297 :turbo type D@monazilla.org :2001/02/18(日) 21:10
////////////////////////////////////////////////////////////
{// 名前:turbo type D@monazilla.org(藁
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
聞いてアロエリーナ ちょっと言いにくいんだけど
聞いてアロエリーナ

ココカラノコードハ: 2chのBoard一覧HTMLソースの
      http://www.2ch.net/bbstable.html
      及び http://www.2ch.net/bbsmenu.html
      から内部データ及びTreeViewのItemを設定するソース
クワシイセツメイハ: 1:ループさせる
      2:ソースからカテゴリデータを取り出す
      3:カテゴリデータからボードデータを
       ループして取り出す
インスウハ:   HtmlSource:HTMLソースの文字列
コウシン日ワ:  2001/02/18
ホカニ逝ットクコトハ ナシ

聞いてくれてありがと アロエリーナ♪
\________________/
          /
         ∧_∧
   Ψ    (∀・ )
   □    (∩∩ノ)
// ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ }

298 :デフォルトの名無しさん :2001/02/18(日) 21:17
monazilla.age!!
http://www.geocities.co.jp/SiliconValley-Oakland/9028/

299 :turbo type D@monazilla.org :2001/02/19(月) 01:07
書記さん、対応はやいなあ。age

300 :アロエリーナ2号 :2001/02/19(月) 01:51
なんか本格的だねー
ちょっとびっくりサ。
応援あげ
http://www.geocities.co.jp/SiliconValley-Oakland/9028/

301 :238 :2001/02/19(月) 09:54
>書記さん
http://green.jbbs.net/computer/479/monazilla.html
このページの管理パスを渡します

302 :turbo type D@monazilla :2001/02/19(月) 12:18
ログデータを
カレント以下
\logData\サーバー名\板名(英語).txt
で管理しようと思っているんだけど

問題ないかな?

subject.txtの仕様はすげ、助かる。

303 :turbo type D@monazilla :2001/02/19(月) 12:22
フッサール少佐の方は
タブ切り替えでお気に入りとスレ一覧を変更予定なんですね。

その方がいいかな?

304 :turbo type D@monazilla :2001/02/19(月) 12:32
ところで、Delphi持っていない人向け
&コンポーネントのインストなど面倒な事したくない人の為に

exeファイルを誰か配布してやってほしい。
UPXかますといい感じ。

305 :turbo type D@monazilla :2001/02/19(月) 13:29
エクスプローラのListViewで
項目の並び替えなどがDrag&Dropで出来るが
あれを実装するのは簡単なのでしょうか?

306 :turbo type D@monazilla :2001/02/19(月) 13:41
いまさらだが>>28
のクラス実装はやっぱり正しいな。

>>97のオレの発言は撤回したい。

実装していったらなんとなくわかった。未熟者だ。欝だ氏脳。

基底クラスにListとダウソメソッドが欲しい。

が今更だしなんとかなりそうなので突き進む。

307 :>305 :2001/02/19(月) 14:04
HeaderControl+ListBoxのOwnerDrawでやれば簡単にできるけど
それだとListViewの利点を放棄しちゃうことになるか。

308 :turbo type D@monazilla :2001/02/19(月) 15:19
>>307
なんかあのエクスプローラの動作っていかにもAPIでデキマスデー
といわんばかりの動作だから実現させたいな。
・・しかしそんな枝葉にこだわっていたら完成しないから
いずれ誰かに実装してもらう事にしよっ。

あと、エクスプローラListView/vsReportの上下の三角マーク▽△
これもAPIだと思うのだがどうやるのだろう。

誰か教えてね。

309 :turbo type D@monazilla.org(藁 :2001/02/19(月) 17:55
なんか、オレばかり書き込んでんだけど....
槍田氏悩した方が逝ってヨシですか?

スレ一覧取得コードは出来ました。
ローカルにデータさえあればぽんぽんと
スレ閲覧が出来るようになった。

レスはまだなので
次はdatの解析する.


ヒロユキ@ギコナビさんやかちゅ〜しゃ
などで実装されているように
ローカルの部分とオンラインの部分の
兼ね合わせをどうやるといいのかが
よくわからない。

310 :gikozilla :2001/02/19(月) 17:59
全然進んでません。。。

>>309
>ローカルの部分とオンラインの部分の
>兼ね合わせをどうやるといいのかが
よくわからないけど、
o オンラインモードの場合
スレッドを読み込みに行く時.datが更新されているかチェックする。

o オフラインモードの場合
ローカルにデータがあればそれを表示する。
なければ、読み込みに行く。

ローカルのデータを優先するかどうかの設定??


311 :デフォルトの名無しさん :2001/02/19(月) 18:27
>>305 >>307
少なくともMFCではListViewにスタイルを設定するだけでできます。
コモンコントロールの機能のようなので、Delphiもおなじでしょう。

312 :デフォルトの名無しさん :2001/02/19(月) 18:29
当面問題無いと思うけど、とりあえずリンクしとく。
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=968944428&nofirst=true&st=307

313 :turbo type D@monazilla.org(藁 :2001/02/19(月) 18:54
エクスプローラの詳細表示で
[名前|サイズ|種類|更新日時]
これを自由に入れ替える機能。

>>311
その割にベキ2にも実装されていないのだが、
作者の趣向と合わないだけかな?
それともOS依存か__

>>310サンクス。
高速化は先送りして、とりあえず
遅くてもナビゲートできるように
した方がいいんですかね。

ちょとコードが大きくなってくると
クラス設計の重要度がすごく増しますね。
ダウンロードクラスなんて実装しておいた方がいいのだろうか。
全くわからん。

314 :デフォルトの名無しさん :2001/02/19(月) 19:11
>その割にベキ2にも実装されていないのだが、
>作者の趣向と合わないだけかな?
>それともOS依存か__
確かに、コモンコントロールのバージョンには依存しますね。
MSDNにバージョンxxx以上とかかかれてましたし。
でも、多分IE4を入れてれば大丈夫だったし、IEコンポ使うってことは
IE4必須なので問題ないと思います。と思って俺はつけた>2chブラウザに
リストにボールドフォントとか使うときはオーナードローになると思うけど
そのときにはカラムの並び順も考慮した描画ルーチンにしないといけないのが
めんどうなところ。


315 :名も無き詩人さん :2001/02/19(月) 20:27
板一覧を取得して、
最初の板の、最初のスレッドの、最初のレスを
標準出力に書き出す最小限のPerlかRubyのサンプルが、
資料として欲しいなと思う今日この頃。

316 :gikozilla :2001/02/19(月) 20:40
>>315
作ってみましょうか?


317 :gikozilla :2001/02/19(月) 20:55
作りかけてるけどwgetとか外部のコマンド使いまくってるから
使い物にならないかも。。。

とりあえず板一覧は
http://www.2ch.net/board.txt
http://www2.ocn.ne.jp/~luckland/text/board.txt
にありますね。


318 :名も無き詩人さん :2001/02/19(月) 21:25
>作りかけてるけどwgetとか外部のコマンド使いまくってるから
>使い物にならないかも。。。
wget使うのはなお宜しいですねぇ。
Windowsには標準でついていないのがイタいけど。

>http://www2.ocn.ne.jp/~luckland/text/board.txt
これはオフィシャルなものですか?

319 :デフォルトの名無しさん :2001/02/19(月) 21:53
今更確認するまでもないと思いますが、
出来るだけread.cgiを呼ばないように努力したいですね。
http://teri.2ch.net/test/read.cgi?bbs=saku&key=979695762&st=436&nofirst=true
最も負荷がかかっているのはI/Oだという話もありますが、
read.cgiは行数を数えるため、ファイル全体を読んでいると思われます。
頑張って差分GETにしましょう。

320 :デフォルトの名無しさん :2001/02/19(月) 21:56
http://www.2ch.net/board.txt
↑これ、オフラウ用に公式アナウンスされているけど、
むちゃくちゃ古いですよ。全然更新されてないです。

321 :ドメイントレヤ :2001/02/19(月) 22:06
負荷をちょっとでも軽減するために
http://salad.2ch.net/bbstable.html を変換して、
http://monazilla.org/board.txt に置いとくとか。

322 :デフォルトの名無しさん :2001/02/19(月) 22:21
WinInetはnバイト目以降を取得とかってできるの?
CreateFile, ReadFileでも試してみようかな。

323 :デフォルトの名無しさん :2001/02/19(月) 22:37
>>314
2chブラウザの方でしたか!
ありがたや・・・

324 :デフォルトの名無しさん :2001/02/19(月) 22:41
ボード一覧は結局どれ?
http://salad.2ch.net/bbstable.html なくなった??
http://www.2ch.net/bbstable.html こっち?
http://www2.ocn.ne.jp/~luckland/text/board.txt オフィシャル?
http://www.2ch.net/board.txt 古い!
http://www.2ch.net/bbsmenu.html 取得面倒?


325 :ヒロユキ@ギコナビ :2001/02/19(月) 23:16
ちょっとヘコんだけど、書きに来ました。

>>313
>エクスプローラの詳細表示で
>[名前|サイズ|種類|更新日時]
>これを自由に入れ替える機能。

勘違いかもしれないですけど、
TListViewのFullDragをTrueじゃだめかな?

>>322
WinInetって自分で何処までイジれるのか分からないので、
はずしているかも知れませんが、ヘッダにRange: bytes=xxx
ってすると差分取れます。
HTTPの本を会社に置きっぱなしなので、間違ってるかも。
「HTTP詳解」っていう本だったかな?
あと、インターネットテクノロジ2001年1月号にも、HTTPのことが
ちらっと載っていたような気がします。(これも会社に置きっぱなし)


326 :フッサール少佐 :2001/02/19(月) 23:21
>>302
フム、なにやら板名だけじゃかぶっている所があるそうなんで、
そっちの方が安全カモ。

>>303
実はあのタブが好きなんだな。
あと過去ログようのタブが必要と見た。
別にお気に入りで過去ログフォルダを作ってもいいんだけど。

>>322
たしか出来たはず。

327 :デフォルトの名無しさん :2001/02/19(月) 23:27
>ヒロユキ
へこまんでい〜よ〜。
暇なときでいいから、またアドバイスに来てちょ。

ほんでもって、HTTP1.1日本語訳へのリンク
少し古いのと若干わかりにくい部分があるので、rfc2616の原文も見るべし
http://www.geocities.co.jp/SiliconValley-PaloAlto/5694/rfc/rfc2068-ja.html

328 :フッサール少佐 :2001/02/19(月) 23:31
>>322
http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page14.html
で、どう?
ヒロユキ@ギコナビの方法でもOK

329 :フッサール少佐 :2001/02/19(月) 23:31
>>322
http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page14.html
で、どう?
ヒロユキ@ギコナビの方法でもOK

330 :フッサール少佐 :2001/02/19(月) 23:32
ありゃ?2重火気粉スマソ

331 :デフォルトの名無しさん :2001/02/19(月) 23:36
ヒロユキさんや、幸運の国さん、2chブラウザの作者さんらの
積極的な参加がこのプロジェクトを活気付けていると私は思います。
しょーもないあおりは無視で行きましょう。

332 :フッサール少佐 :2001/02/19(月) 23:43
>>319
全く同感。
HEADメソッドでチェックして、更新済みのものは差分取得がベストかな。
あるいは、datディレクトリの一覧を取得して日付で更新をチェックするとか。
Perlは重いっす。

333 :フッサール少佐 :2001/02/19(月) 23:48
>>308
ListViewのヘッダーカラムのDCを取得してそのCanvasにオーナードローすれば、OK。

334 :ヒロユキ@ギコナビ :2001/02/20(火) 00:06
>>332
If-Modified-Since:すると、HEADとらなくても、直接GETでOKです。
更新されていなければ、更新されていないコード(304)が帰ってくるので、
未更新が検出できます。


335 :デフォルトの名無しさん :2001/02/20(火) 00:08
monazillaのページ見たけど、
どちらかと言うとmozillaよりGNU-2chといった感じだなァ…。

いや、なんとなくそー思っただけ。

336 :フッサール少佐 :2001/02/20(火) 00:29
>>334
おお、それはいい事を聞いた。マジメにRFC読んでみるかな。

337 :314 :2001/02/20(火) 00:44
>>334
更新検出なら、dat/ディレクトリ一覧の.datファイルのタイムスタンプを見ればわかるよ。
今、俺も実装してるところ。
subject.txtとdat/の2回アクセスしないといけないのが難点。

338 :デフォルトの名無しさん :2001/02/20(火) 00:55
でも、tako鯖はdat/を読めないので注意してね。

339 :デフォルトの名無しさん :2001/02/20(火) 01:02
>GET /tech/dat/?M=D HTTP/1.0
ね。

それと、
>GET /tech/dat/981726544.dat HTTP/1.0
>Host: piza.2ch.net
>Range: bytes=62298-
>If-Modified-Since: Thu, 15 Feb 2001 09:50:45 GMT
>Connection: Keep-Alive
>
↑これ(実際に送った例)をレスポンスを待たないで、
一括してリクエストするとメチャメチャ早いよ。
parseがかなり面倒だけどね。
以上、時々だけ名乗る98でした。

340 :デフォルトの名無しさん :2001/02/20(火) 03:37
>>339
Keep-Aliveにするといつ終ったか分かんなくない?
parseしつつ表示ってんだったらいいだろうけど、
それって結構面倒な気がする。
つか、Keep-Alive にしてリクエスト送りまくるって話なんかな。

341 :turbo type D@monazilla.org(藁 :2001/02/20(火) 09:52
>>ヒロユキ
うん、へこまなくてもいー。いー。

>>324
http://www.2ch.net/bbstable.html
http://www.2ch.net/bbsmenu.html
の二つは解析方法は共通だよ。
他のところはカテゴリが無くてちょっとイマイチかモナー。

>>333少佐('w')ゞ
ありがとうゴザイマフ
しかしAPI直叩きで出来る(とオモワレ)のを
オナドローするのはちょぴ嫌でございます。

なんかめちゃくちゃ詳しい方々が集まってきてますね。

342 :turbo type D@monazilla.org(藁 :2001/02/20(火) 10:26
しつもーん。
http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page2.html
をDelphiに書き直した。

uses WinInetを加えて

procedure TForm1.Button1Click(Sender: TObject);
var
 hSession: HINTERNET;
 hService: HINTERNET;
 lpBuffer: array[0..1024+1] of Char;
 dwBytesRead: DWORD;
begin
 hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
// hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
 if Assigned( hSession ) then
 begin
  hService := InternetOpenUrl( hSession, PChar(Edit1.Text), nil, 0, 0, 0);
  if Assigned( hService ) then
   while true do
   begin
    dwBytesRead := 1024;
    InternetReadFile( hService, @lpBuffer, 1024, dwBytesRead );
    if dwBytesRead = 0 then break;
    lpBuffer[dwBytesRead] := #0;
    Memo1.Lines.Add( lpBuffer );
   end; //while
  InternetCloseHandle( hService );
 end;
 InternetCloseHandle( hSession );
end;

しかし、普通に書き直した"INTERNET_OPEN_TYPE_DIRECT"では読み込まない
"INTERNET_OPEN_TYPE_PRECONFIG"にしたら読み込んだ。なぜ?

Indyやめて、WinInetにしようかしら?( w ;)
要望が多ければそうする。

343 :turbo type D@monazilla.org(藁 :2001/02/20(火) 17:07
>>342
よくわからないけど
プロキシの問題だろうか。
http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page9.html

WinInetのHTTPページの
Page2-6,8はPascalに移植ったので
誰か必要なら逝ってくれ。

344 :デフォルトの名無しさん :2001/02/20(火) 17:31
もしかしてあぼーんすると.datのファイルサイズ変わっちゃう?
だとすると差分の取得がおかしくなりそう。

345 :turbo type D@monazilla.org(藁 :2001/02/20(火) 17:57
あぼーん、について教えて。

本当に全くわからない。(藁

かちゅーしゃ使ってるのにね。

346 :デフォルトの名無しさん :2001/02/20(火) 18:12
>>344
かわるよ。そこがこの手のツールが各自工夫するところ。
さらにあぼーんには、「ノーマルあぼーん」(全フィールドがあぼーんになる)
と、「サイレントあぼーん」(datの行ごと削除、痕跡が残らない)があります。
固定長あぼーん(余ったところを空白などで埋める)の要望もあるが、
マイノリティなツールのために2ch側に対応を求めるのは本末転倒だと思います。
現在、各ツールののあぼーんへの対処は、
1.あぼーんを検出したら、dat全部読み直し
2.あぼーんを検出したら、少し前から読み直して、テキスト比較で前回の
 バイトオフセットを探して読み込み
3.datの差分読み込みはしない
あたりになっております。あぼーん検出は保存位置から読み出して、そこが
行頭か否かで判断かな?
ちなみに、俺(2chブラウザ)は3。差分読み込みやる気なし。
dat読みは全読み込みのときのみ。


347 :デフォルトの名無しさん :2001/02/20(火) 18:39
WinInetで.datファイルを10分割して同時にダウソしたら
超高速ダウソできる???

348 :turbo type D@monazilla.org(藁 :2001/02/20(火) 19:48
アプしました。
モナプロ〜ラ〜もWinInetに変えてしまったので

多分コンポーネントのインストは一切必要なく
IE4以上、D4/D5環境にてコンパイルできるようになった。

http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/monaplorer.lzh

どの板でもボード一覧を取得できるようになった。

ネットに接続していない状態で動かしても動かないカモ。

でも、オレがタコなのでメモリリークしているみたいだ。
メモリクバグを発見する方法知っている人、教えて。

349 :turbo type D@monazilla.org(藁 :2001/02/20(火) 19:50
>>ボード一覧
スレ一覧の間違い。

腹減った。

350 :デフォルトの名無しさん :2001/02/20(火) 20:18
>でも、オレがタコなのでメモリリークしているみたいだ。
>メモリクバグを発見する方法知っている人、教えて。
アプリ終了時にメモリリークの個数を報告するユニット。
http://www.sakaki.keiaikai.or.jp/convroom/webconv.exe/read?No=9666&Response_Root=9632


351 :フッサール少佐 :2001/02/20(火) 22:05
>>348
オレは
http://www.yks.ne.jp/~hori/MemCheck.html
これを使ってるよん。かなり便利。

352 :デフォルトの名無しさん :2001/02/21(水) 00:34
更新チェック&差分ダウンロードできるなら巡回機能付けてね

353 :フッサール少佐 :2001/02/21(水) 00:46
>>302
ログはドメイン名を元にするようにした。
例えば、yahoo板はこんな感じ。
\logs\salad.2ch.net.yahoo\977080207.dat
これならかぶらんだろう。

354 :フッサール少佐 :2001/02/21(水) 00:48
>>352
無ければ、自分で作るのだ。それがオープンソースの醍醐味でもある。
つーわけで、自分で作れ。Delphi買ってコイ。

355 :デフォルトの名無しさん :2001/02/21(水) 01:05
同意。
&nbsp変換もそうだが、このスレに「○○きぼーん」は良くない。
プロトタイプのコードでも作って、導入を促すようにすべき。

356 :355 :2001/02/21(水) 01:07
最後の;つけなかったのに、nbspが変換されちった。

357 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:42
確かに、実装困難なものを
現時点で、きぼーん、されてもつらいものがある。
差分ダウソ&更新はまーだ先ね。マターリいこうぜ。

メニュー項目くらい
誰か案をだしてほしい。

>>356オレもおろろいた。

>>350&少佐、
メモリク情報サンクス。

リクしているかどうかも不確かながらデバッグにとりかかる。

自分で無理だったら
Tree型Dataの破棄と更新を報告させてもらうね。


358 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:45
さて、書記さんも更新ネタがなさそうなので
昨日まとめた、WinInetのDelphi仕様コード公開。
連続カキコすまそね。

全コードusesにWinInetを追加するだけで動作するはず。

INTERNET_OPEN_TYPE_DIRECT

INTERNET_OPEN_TYPE_PRECONFIG
は適当に置き換えてくれ。MemoとかButtonとかも適当に。




359 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:46
//HTML/テキストファイルをHTTPで読み取る
//http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page2.html
//より移植
procedure TForm1.Button1Click(Sender: TObject);
var
 hSession: HINTERNET;
 hService: HINTERNET;
 lpBuffer: array[0..1024+1] of Char;
 dwBytesRead: DWORD;
begin
// hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
 hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
 if Assigned( hSession ) then
 begin
  hService := InternetOpenUrl( hSession, PChar(Edit1.Text), nil, 0, 0, 0);
  if Assigned( hService ) then
   while true do
   begin
    dwBytesRead := 1024;
    InternetReadFile( hService, @lpBuffer, 1024, dwBytesRead );
    if dwBytesRead = 0 then break;
    lpBuffer[dwBytesRead] := #0;
    Memo1.Lines.Add( lpBuffer );
   end; //while
  InternetCloseHandle( hService );
 end;
 InternetCloseHandle( hSession );
end;

360 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:47
//HTML/テキストファイルをHTTPで読み取りファイルに書き出す
//http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page3.html
//より移植
procedure TForm1.Button1Click(Sender: TObject);
var
 fp: TextFile;
 hSession: HINTERNET;
 hService: HINTERNET;
 lpBuffer: array[0..1024+1] of Char;
 dwBytesRead: DWORD;
begin
// hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0 );
 hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0 );
 if Assigned( hSession ) then
 begin
  hService := InternetOpenUrl( hSession, PChar(Edit1.Text), nil, 0, 0, 0);
  if Assigned( hService ) then
  begin
   AssignFile(fp, Edit2.Text);
   Rewrite(fp);
   while true do
   begin
    lpBuffer := '';
    {↑C++ではchar lpBuffer[1024+1]と
      変数確保されていると同時に初期化されているので
      Delphiでも初期化する}
    dwBytesRead := 1024;
    InternetReadFile( hService, @lpBuffer, 1024, dwBytesRead );
    if dwBytesRead = 0 then break;
    Write(fp, lpBuffer: dwBytesRead);
    {↑dwBytesRead=StrLen(@lpBuffer)になっている}
   end; //while
   CloseFile(fp);
  end;
  InternetCloseHandle( hService );
 end;
 InternetCloseHandle( hSession );
end;

361 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:47
//HTML/テキストファイルをHTTPで読み取りファイルに書き出す
//パフォーマンスがあがっているらしい
//http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page4.html
//より移植
procedure TForm1.Button1Click(Sender: TObject);
var
 fp: TextFile;
 hSession: HINTERNET;
 hService: HINTERNET;
 lpBuffer: PChar;
 dwBytesAvailable, dwBytesRead: DWORD;
begin
// hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0 );
 hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0 );
 if Assigned( hSession ) then
 begin
  hService := InternetOpenUrl( hSession, PChar(Edit1.Text), nil, 0, 0, 0);
  if Assigned( hService ) then
  begin
   AssignFile(fp, Edit2.Text);
   Rewrite(fp);

   InternetQueryDataAvailable( hService, dwBytesAvailable, 0, 0 );
   GetMem(lpBuffer, dwBytesAvailable+1);
   InternetReadFile( hService, lpBuffer, dwBytesAvailable, dwBytesRead );
   Write(fp, lpBuffer: dwBytesRead);
   FreeMem(lpBuffer);

   CloseFile(fp);
  end;
  InternetCloseHandle( hService );
 end;
 InternetCloseHandle( hSession );
end;

362 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:48
//ネット上のファイル情報を得る
//サーバーに依存する
//http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page5.html
//より移植
procedure TForm1.Button1Click(Sender: TObject);
var
 hSession: HINTERNET;
 hService: HINTERNET;
 ReceiveBuffer: array[0..255] of Char;
 dwSize, Reserved: DWORD;
begin
// hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0 );
 hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0 );
 if Assigned( hSession ) then
 begin
  hService := InternetOpenUrl( hSession, PChar(Edit1.Text), nil, 0, 0, 0);
  if Assigned( hService ) then
  begin
   ReceiveBuffer := '';
   dwSize := sizeof(ReceiveBuffer);
   Reserved := 0;
   HttpQueryInfo(hService, HTTP_QUERY_RAW_HEADERS_CRLF, @ReceiveBuffer, dwSize, Reserved);
   Memo1.Lines.Add( String(ReceiveBuffer) );
  end;
  InternetCloseHandle( hService );
 end;
 InternetCloseHandle( hSession );
end;

363 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:48
//ファイルの作成日、サイズを得る
//http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page6.html
//より移植
procedure TForm1.Button1Click(Sender: TObject);
var
 hSession: HINTERNET;
 hService: HINTERNET;
 LastModified: SYSTEMTIME;
 FileSize: Longint;
 dwSize, Reserved: DWORD;
 ft1, ft2: FILETIME;
 t: SYSTEMTIME;
 buf: String;
begin
// hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0 );
 hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0 );
 if Assigned( hSession ) then
 begin
  hService := InternetOpenUrl( hSession, PChar(Edit1.Text), nil, 0, 0, 0);
  if Assigned( hService ) then
  begin
   dwSize := sizeof(LastModified);
   Reserved := 0;
   HttpQueryInfo(hService, HTTP_QUERY_LAST_MODIFIED or HTTP_QUERY_FLAG_SYSTEMTIME,
               @LastModified, dwSize, Reserved);
   dwSize := sizeof(FileSize);
   Reserved := 0;
   HttpQueryInfo(hService, HTTP_QUERY_CONTENT_LENGTH or HTTP_QUERY_FLAG_NUMBER,
               @FileSize, dwSize, Reserved);

   SystemTimeToFileTime( LastModified, ft2 );
   FileTimeToLocalFileTime( ft2, ft1 ); //かなり適当
   FileTimeToSystemTime( ft1, t );
   buf := Format('作成日:%4d/%02d/%02d %2d:%02d:%02d サイズ:%dバイト',
          [t.wYear, t.wMonth, t.wDay, t.wHour, t.wMinute, t.wSecond, FileSize]);
   Memo1.Lines.Add( buf );
  end;
  InternetCloseHandle( hService );
 end;
 InternetCloseHandle( hSession );
end;

364 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:49
//ヘッダ情報を追加する
//http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page7.html
//より移植したけど、何がどうなっているのか理解してません。
procedure TForm1.Button1Click(Sender: TObject);
var
hSession: HINTERNET;
hService: HINTERNET;
szHead: String;
begin
// hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0 );
hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0 );
if Assigned( hSession ) then
begin
szHead := 'Accept:*/*'+#13#10#13#10;
SetLength( szHead, Length(szHead) );
hService := InternetOpenUrl( hSession, PChar(Edit1.Text), PChar(szHead), 0, 0, 0);

if Assigned( hService ) then
begin
//....
end;
InternetCloseHandle( hService );
end;
InternetCloseHandle( hSession );
end;

365 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:49
インデントミスったので、再掲

//ヘッダ情報を追加する
//http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page7.html
//より移植したけど、何がどうなっているのか理解してません。
procedure TForm1.Button1Click(Sender: TObject);
var
 hSession: HINTERNET;
 hService: HINTERNET;
 szHead: String;
begin
// hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0 );
 hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0 );
 if Assigned( hSession ) then
 begin
  szHead := 'Accept:*/*'+#13#10#13#10;
  SetLength( szHead, Length(szHead) );
  hService := InternetOpenUrl( hSession, PChar(Edit1.Text), PChar(szHead), 0, 0, 0);

  if Assigned( hService ) then
  begin
   //....
  end;
  InternetCloseHandle( hService );
 end;
 InternetCloseHandle( hSession );
end;

366 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:50
//インターネット接続が出来るかどうか調べる
//http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page8.html
//より移植
procedure TForm1.Button1Click(Sender: TObject);
begin
 if InternetAttemptConnect(0)<>0 then
 begin
  ShowMessage('インターネットに接続できていません');
 end;
end;

367 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:51
ヲワリ。

では本日も四露氏苦

368 :turbo type D@monazilla.org(藁 :2001/02/21(水) 10:56
>>350
>>351
これって同じ作者なのかな?
どちらも試したがメモリリーク起きてませんでした!

d( °w )
いー感じ♪

369 :turbo type D@monazilla.org(藁 :2001/02/21(水) 12:08
書記さん、monazilla.org(藁 のダウンロードの説明の所を
こんな風に修正してくれると、わかりやすいかな。

> アップロードしてあるファイルをダウンロードする方法
>
> Monazilla Studio をダウンロードする。
> 適当なフォルダで解凍する。
> index.html を開く。
> ダウンロードをクリック。
> 入ってよしボタンをクリック。
 すると シリコンバレーオークランド通り/9028 monazilla が開く
 アップされたソースは[src]フォルダに入っているので
 [src]ボタンを押す
> するとアップされたソースの一覧が出てくるのでダウソしたいファイル名の横のほ
> うにある 表示 ってとこをクリックする。
>
> 以上

370 :turbo type D@monazilla.org(藁 :2001/02/21(水) 19:24
全然ヵキコがない。!

ウツダシノウ

371 :turbo type D@monazilla.org(藁 :2001/02/21(水) 19:35
>/* 書記さんは会社から 2チャンへの書き込みがなぜかできないのでロムってます、すんませんー */

そうですか。
仕事していないのは俺くらいですか。(´∀`)

372 :デフォルトの名無しさん :2001/02/21(水) 19:47
>少佐
TWebBrowserで遅い問題は解決したでしょうか?
もしかしたら文字列連結の時間が原因かもしれません。
・・・外してたらごめんなさい。
BCBの場合、単純にAnsiStringを数百回以上連結すると、
その部分で異常に時間を食います。
std::stringでreserve()すると、(その部分は)嘘みたいに高速になります。
でも、実はAnsiStringでcapacityを増やす方法を知らないんですが。

373 :turbo type D@monazilla.org(藁 :2001/02/21(水) 20:27
モナーアイコンを作成してくれない?誰か。

374 :turbo type D@monazilla.org(藁 :2001/02/21(水) 20:33
あと、32x32のaviもキボーン。
monazilla.org公式っていうのがいいなあ。

いま、かちゅしゃのaviで試しているから、
なんか悲しくて切なくて生産性が下がっています(藁

アイコンデザイン探しにモナー板逝ったら
藁ってしまうので仕事中にはとても探せないや。

317KB
新着レスの表示

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

0ch BBS 2004-10-30