2ちゃんねるブラウザ「OpenJane」改造総合スレ 2

このエントリーをはてなブックマークに追加
302293
FreeAndNilは、使う癖をつけといた方が安全そうなんで、常に使うようにしてました。
あと、改造しやすいようにする為の要望とかも、本スレでしちゃってもOKなんですか?

>>294-295
いや、「修正」じゃなくて、自分でいろいろ「改造」してみてます。
本体に実装されないだろう機能の質問も、色々したかったのでこっちに書いてみました。
一緒に使ってるゾヌとログを共通化したり、上にあるアニメーションを表示するロジックを
改修追加して使ってます。
303293:02/11/10 01:16 ID:oexdI22B
あとメモリーリークですが、見つけられなくて怪しかったのは「UFavorite」でした。
他にも5つあったんですが、それはDelphiのバグっぽかったです。
下は起動して、即終了したときのメモリーリークのエラーログです。

---------------------------------------------------------------
2002/11/10 :57:09 #0000071C - プログラムが起動しました。
---------------------------------------------------------------
2002/11/10 :59:48 #0000071C - 6 回メモリーを解放し忘れています。

種類: 不明
サイズ: 12 バイト
バイナリ:
04DE4B002CEF240100000000

UFavorite.pas(365) : @Ufavorite@TFavorites@Load 関数
Main.pas(1721) : @Main@TMainWnd@FormCreate 関数
不明なファイル : @Forms@TCustomForm@DoCreate 関数
不明なファイル : @Forms@TCustomForm@AfterConstruction 関数
不明なファイル : @Forms@TApplication@CreateForm 関数
Jane(57) : initialization 関数
304 ◆702Jmp32s. :02/11/10 01:25 ID:oflSQhcK
Main.pasのsubjectReadyEventは解放してないです。

>>303
ログを出力するようにするにはどうすれば?(MemCheckですよね?)
305293:02/11/10 01:34 ID:oexdI22B
>304
「MemCheck 2.0」です。
ログの出し方は下のページに書いてある、スタックトレース機能を使いました。
ttp://www.yks.ne.jp/~hori/MemCheck.html
306 ◆702Jmp32s. :02/11/10 02:10 ID:oflSQhcK
>>305
どもです。
けど、起動時にエラーが出て使えない(´・ω・`)
個数だけでメモリリークをつぶすのは無理があるなあ。
もうちっと、いじってみるか。
307名無し~3.EXE:02/11/10 02:16 ID:EI6ZO4mW
D:\Program Files\Delphi\jane\src\Jane2ch.exe

---------------------------------------------------------------
2002/11/10 2:02:01 #00000F10 - プログラムが起動しました。
---------------------------------------------------------------
2002/11/10 2:02:05 #00000F10 - 62 回メモリーを解放し忘れています。


種類: 不明
サイズ: 108 バイト
バイナリ:
0100000063000000838283578385815B838B20274A616E653263682E65786527
2082CC83418368838C83582030303430323544352082C583418368838C835820
38313135313937432082C991CE82B782E993C782DD8D9E82DD88E194BD82AA82
A882AB82DC82B582BD814200

あきませんね。
308名無し~3.EXE:02/11/10 11:36 ID:fFBFAdzE

ゾヌとログの共有させようと思うんですが
どの当たりか 教えてください。

Open Jane Doe 新着3204件:全3204  約6秒程
ゾヌ●        新着3204件:全3204  約20秒程

何とかログの共有できんものかな
309名無し~3.EXE:02/11/10 15:20 ID:fFBFAdzE
>>302
改造スレ活性化のためにもガンガって!
310293:02/11/10 21:30 ID:oexdI22B
>306
起動時にエラーですか? "Jane2ch.dpr"の"uses"の先頭に"MemCheck"を追加して
ホームページのオプションの設定するだけでも動きましたけど。
サンプルみたいなロジックの追加をしなくても、なんとかログは出てくるみたいです。

>308
ああ、ゾヌとの共有って俺の方法ですか?
ログの共有って言っても、Janeの"dat"と"idx"を、ゾヌ形式の"dat"と"inf"にしちゃう上に
ログの保存フォルダもゾヌ形式にしちゃうんで、板の更新とかはJaneだけじゃなく、ゾヌでも
更新しないと動かなくなっちゃいますよ。それでもよければ……って、修正個所を書きたい
トコですが、修正個所が多いんで、どこかうぷろーだーがあればソースごとUPします。
でも、ちょっとヘンな修正してて動かなくなってるんで、そこ直してからになりますけど。
あ、ついでにおかしくなってるトコとか、色々見てもらえると有り難いです。
VB厨がDelphiの勉強がてら修正してるだけなんで、ソースは汚いかもしれないですが……。
311名無し~3.EXE:02/11/10 21:43 ID:pG3fazj9
>>310
Jane用うぷローダは>>3にあるよ。
312 ◆702Jmp32s. :02/11/10 22:11 ID:2leKMhqU
>>310
あ、わざわざども。>>306のレス書いたあとに分かりました。
いやあソースは .pasだけかと思ってたもんで気づかなかった。
313308:02/11/10 23:29 ID:FEjl32vq
>>310
なんか凄そう

俺のログの共有のやりたいのはですね。
log - 2ch - 板名(例、softwere,hard等) - Date,ini

カテゴリをはずす、フォルダ名を板URLの一番後ろ
http://pc3.2ch.net/win/ならフォルダ名はWinで

外部掲示板はとりあえずlog-Userフォルダに
夜勤の巣なら こんな風に

log - user - 板名(例、2095) - Date,ini

思うにsubject.txtは別々でもOKかな?
jane
1032236701.dat<>2000 VS XP (718)
1021731910.dat<>壁紙スレ (288)

zonu
1032236701<>2000 VS XP (718)
1021731910<>壁紙スレ (288)

Date、iniを共有したいなと

俺も探してやってみます。

また教えてくださいまし。
314293:02/11/11 02:07 ID:o3mGBENm
>313
今、動くようにしてるんですけど、弄りすぎててなかなか動くようにならない……。

すみません、いまいちよく分らないんですけど、ログをゾヌと完全に共用にするには
ゾヌを修正できない以上、Janeで対応するしかなかったので、"dat"、"idx(inf)"、
"ログ保存フォルダ"を完全にゾヌ形式にしちゃってます。
保存フォルダをJane形式にするには、ゾヌが対応しないとダメだと思うんですけど。
ゾヌと同時に使わないなら、ツールでログをコンバートするだけだったんですが。

一応ゾヌのdatも形式は同じなんですけど、改行コードが違うので、コピーしただけだと、
Janeでの再読み込み時にズレが発生してdatが壊れちゃうみたいです。
ゾヌの改行コードは#13#10で、Janeは#10みたいでした。

あと"Date,ini"ってなんの事ですか? "dat"と"idx(ゾヌのinf)"のことですか?
315293:02/11/11 02:10 ID:o3mGBENm
「外部掲示板」はまだ使ってないのでちょっとよく分らないですが、ログのカテゴリ
フォルダを外すだけなら"U2chCat.pas"の下の部分を変えるだけで出来ました。
詳しい方、もし間違ってたり問題がある場合は、指摘してください。

function TCategory.GetLogDir: string;
begin
result := TCategoryList(categoryList).GetLogDir; //ログのフォルダからカテゴリ名を外す
//result := TCategoryList(categoryList).GetLogDir + '\' + Convert2FName(name);
end;

これは自分が使ってるゾヌの保存フォルダに変えるロジックです。
場合によっては、ここで対応したほうがいいのかもしれないです。
function TBoard.GetLogDir: string;
begin
if assigned(redirect) then
result := redirect.GetLogDir
else
//改造 ━ CHG-ST 2002/11/02 ━ ログのゾヌ化対応 ━━━━━━━━━━━━━━━━
//LOGの保存フォルダをゾヌ形式(URL形式)にする
result := IncludeTrailingPathDelimiter(GetFullPath(Config.LogBasePath))
+ IncludeTrailingPathDelimiter(host)
+ bbs;
//result := TCategory(category).GetLogDir + '\' + Convert2FName(name);
//改造 ━ CHG-ED 2002/11/02 ━━━━━━━━━━━━━━━━━━━━━━━━━━
end;
316308:02/11/11 02:59 ID:/y54Ul8K
>>315

>あと"Date,ini"ってなんの事ですか? "dat"と"idx(ゾヌのinf)"のことですか?

Dat、inf とまちがいですね、すみません。

参考にさしてもらっていろいろやってみます。
317293:02/11/11 12:58 ID:9fM4hD1M
>316
昨日は眠かったんでアンマリ詳しく調べなかったんですが、もし"TBoard"で対応する場合は、
下のロジックで動くみたいです。でも、自分は使わないんで、あんまし詳しくは調べてないです。(^^;
"GetFullPath"は無くても動いたんで、もしかしたら、いらないかもしれません。

function TBoard.GetLogDir: string;
begin
result := IncludeTrailingPathDelimiter(GetFullPath(Config.LogBasePath)) + Convert2FName(name); //ログのフォルダにカテゴリ名を使わない
//result := TCategory(category).GetLogDir + '\' + Convert2FName(name);
end;
318名無し~3.EXE:02/11/11 13:56 ID:/y54Ul8K
>>317
ありがとうございます。 大変参考になります。

俺はこうしました
ゾヌとjaneのログパスに D:\Program Files\BBSLog\と入れると
一応ログの保存場所が同じになりました。

function TBoard.GetLogDir: string;
begin
if assigned(redirect) then
result := redirect.GetLogDir
else
//result := TCategory(category).GetLogDir + '\' + Convert2FName(name);
result := IncludeTrailingPathDelimiter(GetFullPath(Config.LogBasePath))
+ '2ch' + '\' + bbs;
end;

本当は2ch以外はuserにしたかったのですがとりあえず後回しにしました。

ゾヌ  ログパス\2ch\win
jane  ログパス\2ch\win

後はinfファイルです。

今度のゾヌとjaneのログ保存形式は多分同じになると思います。
コピーしたけど大丈夫でし。
319名無し~3.EXE:02/11/11 19:27 ID:fD45DSB2
誰かかちゅとのログ共有Ver.作ってくれないかな。
320293:02/11/12 01:11 ID:DXnvC0B2
>318
ふ〜、やっと動くようになりました。今更役に立つのか分りませんが、ソースを
>>3 の"Jane UpLoader"にUPしときました。(>>311さん。遅れましたが、どうもでした)
基本的なソースしかUPしなかったので、メモリーリークチェック用の「MemCheck 2.0」
とかは >>305 から落としてください。

あと、「今度のゾヌ」って、もしかして、ゾヌ2ですか!? テスターとかしてるんですか?
あ〜自分もテスターやっとけばよかった。まあ、Delphiの勉強にはなったからいいかな。

あとソースですが、"dat""inf""保存フォルダ"だけでなく、いろいろ改造しちゃってます。
「//改造 ━」で、検索すると改造個所が分ると思います。
「Main.pas」の先頭にも、自分専用メモですが、いろいろ書いてあります。
ただ、改造途中で動作保証は一切出来ませんので、保存用のログを使わないか、バックアップ
してから試して下さい。あと現状、オリジナルでも3つはメモリーリークがでるみたいです。

あと、iniファイル作ったり、修正するのがめんどくさかったので"FormCreate"を直接修正して、
改造モードとかを切り替えるようにしてます。必要ならそこを修正して起動してください。
重要なところは、下の2つです。

//改造 ●ログのゾヌ化対応
JANE_OPERATION_MODE := JANE_OPERATION_MODE_JANE; //Janeモードで運用
//JANE_OPERATION_MODE := JANE_OPERATION_MODE_ZONU; //ゾヌモードで運用

//改造 ●スレ情報読み込み高速化対応
//JANE_LOG_ALLLOAD_MODE := True; //ログフォルダのidx(inf)情報を全て読み込む(オリジナルJane)
JANE_LOG_ALLLOAD_MODE := False; //ログフォルダのidx(inf)情報は読み込まない(高速モード)(いまだ不具合あり!!)
321293:02/11/12 01:15 ID:DXnvC0B2
Delphi自体、勉強し始めて間もないので少しでもヘンな所とか、いいサンプルとかがあったら
教えてもらえると有り難いです。基本的な文法も解ってないので、変数名・作りがVBモドキです。
今は主に、idx(inf)の読み込みを早くする為に、"U2chBoard"と"U2chThread"を
色々弄り始めてるんですが、コメントが少なくて初心者の俺には追うのが難しい……。

下が、主な改造個所です。

・起動時の処理修正
 (iniとかを修正するのが、めんどくさかった為の手抜き処理)
・ログのゾヌ化対応
 (datの改行コードを#10から#13#10にした。オリジナルとモード切り替え可能。……のはず。)
・アニメーションの表示対応
 (処理中のアニメーション表示。"Jane2ch.avi"をexeと同じフォルダに入れると再生する)
・スレ情報読み込み高速化対応
 (※修正中。ログが沢山溜まると極端に遅くなるので、いろいろ読み込まないように修正。)
・デバッグログの文字数省略
・メインメニューに「お気に入りに追加」を追加
 (ゾヌもどきにする予定でつけたけど、ちょっと使いにくいかも。あとで修正する可能性あり)
・ここまで読んだのゾヌ化対応
 (ゾヌのスレ番号クリック時の「ここまで読んだ」の追加と、「ここまで読んだにジャンプ」を
 スレ欄ツールバーに追加)
・タブの表示位置変更対応
 (ゾヌみたいに下に表示した、メインメニューの表示で切り替え可能にした。iniには保存してない)
・ステータスバーの表示非表示切り替え
 (メインメニューの表示で切り替え可能にしたけど、まだiniには保存してない)
・ポップアップメニューをちょっと改造
 (思いつきで作り途中、不必要なメニューを隠して、「▽全メニューを表示」を追加。
 iniとかの保存は未対応。非表示項目も現在固定)
・その他修正
 (その他、メニューの位置とか、細かいところを、自分好みにいろいろ修正)