1 :
デフォルトの名無しさん :
2001/02/09(金) 22:49 2ちゃんねる専用ログ巡回ソフト「モナヂラ(monazilla)」を オープンソースでつくっちゃおーと言うプロジェクトです。
2 :
デフォルトのゲイツさん :2001/02/10(土) 00:06
>1 ソースは何処?
3 :
デフォルトの名無しさん :2001/02/10(土) 00:46
オープンソースなのに、ソースはまだ無い。 つーか誰も一行も記述してない!
企画倒れsage つーかいまさらそんなもんが必要か?しかも2ちゃんねる専用?
5 :
デフォルトの名無しさん :2001/02/10(土) 00:53
作るんだったらふつーのGeckoブラウザきぼん K-meleon対抗で
なんか予想通りの展開だな。 誰かがベースになるコードを一通り組んじゃわないと 先に進まないよ。
8 :
デフォルトの名無しさん :2001/02/10(土) 01:34
ベース。 int main(int argc,char* argv[]){ return 0; }
おれがメインを書いてやる void main() { while(1){ sub() ; } } サブは誰か書いてくれ! #誰かがmain()の型を突っ込んでくれますよーに・・・
10 :
8 :2001/02/10(土) 01:38
もろかぶったな。
11 :
9 :2001/02/10(土) 01:48
そうだね。。へへへ >8 じゃ定義文。 #define MSG_MONA "お前モナー"
12 :
デフォルトの名無しさん :2001/02/10(土) 01:48
import javax.swing.*; class Monazilla{ private JFrame frame; public Monazilla{ frame = new JFrame("Monazilla"); } public void itteyoshi(){ //後は任せた frame.pack(); frame.show(); } public static void main(String args[]){ Monazilla mona = new Monazilla(); mona.itteyoshi(); } }
今更Javaかよ。
mozillaより重そう…
15 :
デフォルトの名無しさん :2001/02/10(土) 08:12
とりあえ、だれかmozillaのソース持ってきてよ。 それをちょこちょこ弄るだけで終わりしよ。
17 :
14 :2001/02/10(土) 08:35
18 :
デフォルトの名無しさん :2001/02/10(土) 14:02
import java.awt.*;
import java.io.IOException;
import javax.swing.*;
import javax.swing.event.*;
public class Monazilla extends JFrame {
private JFrame frame;
private Container pane;
private JEditorPane ePane;
public Monazilla() {
setTitle( "Monazilla" );
setSize( 600, 500 );
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
setVisible( true );
}
private void itteyoshi() {
pane = getContentPane();
try {
ePane = new JEditorPane( "
http://salad.2ch.net/bbstable.html " );
} catch ( IOException ex ) { /* mona */ }
ePane.setEditable( false );
ePane.addHyperlinkListener( new Hyperactive() );
}
private void omaemona() {
pane.add( ePane );
}
public static void main(String args[]){
Monazilla mona = new Monazilla();
mona.itteyoshi();
mona.omaemona();
}
}
class Hyperactive implements HyperlinkListener {
public void hyperlinkUpdate(HyperlinkEvent e) {
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
JEditorPane pane = (JEditorPane) e.getSource();
try {
pane.setPage(e.getURL());
} catch (Throwable t) {
t.printStackTrace();
}
}
}
}
あいよ、Indyインストしてまっててな。
20 :
デフォルトの名無しさん :2001/02/10(土) 21:30
ギコナビが HTTPにどのコンポ使ったかおせーてほしーな。 ソケット直かな?NMは使ってないみたいだけど。
21 :
デフォルトの名無しさん :2001/02/10(土) 22:56
面倒だからWininetでもいいんじゃん?
22 :
デフォルトの名無しさん :2001/02/10(土) 22:58
23 :
デフォルトの名無しさん :2001/02/10(土) 23:02
24 :
デフォルトの名無しさん :2001/02/10(土) 23:15
・・・なんか、VC++の奴らが混ざってねえか?(w VCLでオープンソースな。 Borland以外の奴は他すれでやってくれ。
単に、Delphiの人達やる気ないんじゃない?
言語はなんでもいいと思うんだけどね。。
>>20 ギコナビ@ヒロユキです。
ギコナビはHTTPCLIっていうのを使ってます。
なかなか高性能ですよ。
あと、このスレ面白そうだね。
オープンソースプロジェクトだと、様々な人たちの力で成り立つわけですが、
だれか、一人の人がまとめる役をしないといけないのではないでしょうか?
ここの1さんが、まとめる役とかしないのですか?
まずは、言語からはなれて、分析/設計をするのが先のような気がするよ。
言語を決めるのは、それが終わってからでも、遅くは無いと思うよ。
みんなで適当に進めても、アプリケーションは出来ないよ。
それじゃ、みなさん、がんばってください。
僕も仕事が暇になったら、参加させてもらいます。
28 :
デフォルトの名無しさん :2001/02/11(日) 02:46
とりあえずこれを実装してまえ 2chログ巡回ツール「ギコナビ」作ってみました。 123 名前:>122投稿日:2001/02/02(金) 01:15 エラー処理がないけど、とりあえずこんなんでいいのかな? T2chDownloaderさえ誰かがまともに実装してくれれば その他のコンポ、フロントエンド(UI部分)なんてすぐでっち上げられるよ。 type // 基本クラス T2chObject = class(TComponent) protected FItems: TList; // function GetItems(Index: Integer): T2chObject; protected property Url: String; property Caption: String; // 見出し procedure Realod; // ダウンロード開始 property Count: Integer; // property Items[Index: Integer]: T2chObject read GetItems; published property OnReload: TNotifyEvent; // ダウンロード開始 property OnReloaded: TNotifyEvent; // ダウンロード終了 end; // 2ch全体 T2chNet = class(T2chObject) public property Items[Index: Integer]: T2chBoard read GetItems; end; // 板リスト T2chBoard = class(T2chObject) public property Items[Index: Integer]: T2chThread read GetItems; property Category: end; // スレリスト T2chThread = class(T2chObject) public property Items[Index: Integer]: T2chThread read GetItems; end; // レスリスト(たぶんflyweight) T2chResponse = class(T2chObject) public property No: Integer; // 番号 property Email: String; // メアド property DateTime: TDateTime; // 書込日時 property Lines: TStrings; // 本文 end; // ダウンローダ T2chDownloader = class(T2chObject) private FQueue: TObjectQueue; // スタックのがいいかも?? public property Online: Boolean; property CacheDirectory: String; // ローカルキャッシュ procedure Request(Target: T2chObject); procedure Cancel(Target: T2chObject); end;
開発言語はなんでしょうか。とりあえずCでいいなら
>>23 さんの
部分ならありますんで汚いソースですが、、
更に言うとめちゃくちゃへぼいです。訂正してくれたら私も嬉しい。。
void MasterMake(void)
{
FILE *fp,*fp2;
HANDLE hFile;
DWORD FileSizeLow,dwAccBytes;
OPENFILENAME ofn;
char *lpBuffer,stp[32][128],categsf[32];
int i,j,k,t,p,st,ls,servsuu,length[SERVERNMAX],categn = 0,flag = 0;
//bbstable.htmlは
http://salad.2ch.net/bbstable.html //ファイル開いてメモリに書き出してます。
hFile = CreateFile("offboard\\bbstable.html",0,FILE_SHARE_READ |
FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
FileSizeLow = GetFileSize(hFile,NULL);
CloseHandle(hFile);
lpBuffer=new char[FileSizeLow+1];
GetOpenFileName(&ofn);
hFile = CreateFile("offboard\\bbstable.html",GENERIC_READ,
0,0,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
SetFilePointer(hFile,0,0,FILE_BEGIN);
ReadFile(hFile,lpBuffer,FileSizeLow,&dwAccBytes,NULL);
lpBuffer[dwAccBytes] = 0;
CloseHandle(hFile);
//ここら辺はオフボード落としてtextの中身確認して下さい //全サーバの種類を配列に格納してます。後で比較する為 fp2 = fopen("offboard\\server.txt","r"); for(i=0;fscanf(fp2,"%s",stp[i]) != EOF;i++) length[i] = strlen(stp[i]); servsuu=i; fclose(fp2); fp = fopen("offboard\\masterboard.dat","w"); //カテゴリ分けする為にカテゴリの名前を読み出してその位置を見つけます fp2 = fopen("offboard\\category2.dat","r"); fscanf(fp2,"%s",categsf); st = strstr(lpBuffer,categsf) - lpBuffer;
for(categn=0;fscanf(fp2,"%s",categsf) != EOF;categn++){ ls = strstr(lpBuffer,categsf) - lpBuffer; for(i=st;i<ls;i++){ flag = 0; if(lpBuffer[i] == '='){ for(j=0;j<servsuu;j++){ if(strncmp(stp[j],&lpBuffer[i+8],length[j]) == 0){ fprintf(fp,"%d\t%s\t",categn,stp[j]); flag=1; break; } } if(flag == 1){ for(k=i+length[j]+9;lpBuffer[k] != '/';k++) fprintf(fp,"%c",lpBuffer[k]); fprintf(fp,"\t"); for(t=k;t<k+64;t++){ if(lpBuffer[t] == '>'){ for(p=t+1;lpBuffer[p] != '<' && p <= t+14;p++) fprintf(fp,"%c",lpBuffer[p]); fprintf(fp,"\n"); break; } } } } } st = ls; } delete []lpBuffer; fclose(fp2); fclose(fp); return; }
タブが消えてしまいましたが、、わかねーぞボケって部分があったら説明します。
33 :
デフォルトの名無しさん :2001/02/11(日) 03:19
CreateFileでネットワーク越しのhtmのソース(やバイナリファイル)開けちゃうの?
35 :
デフォルトの名無しさん :2001/02/11(日) 12:03
2chのCGIの詳細な仕様が欲しいんですけど、 どっから手に入ります?
36 :
デフォルトの名無しさん :2001/02/11(日) 12:49
>>34 ダウンロードに関してはCreateFile, ReadFileだけで十分ってことかな?
そうするとDelphiのHTTP系コンポを使う意味あるの?
37 :
デフォルトの名無しさん :2001/02/11(日) 14:04
38 :
turbo type D :2001/02/11(日) 14:46
>>31 -32
わかりにくいぞボケ..
いや、失敬。
エディタの置換使うかこれアプしたから使いナ。
http://zurubon.virtualave.net/source.cgi program&nbsp;nbsp;
uses
&nbsp;&nbsp;SysUtils,
&nbsp;&nbsp;Clipbrd;
{$R&nbsp;*.RES}
var
&nbsp;&nbsp;S:&nbsp;String;
begin
&nbsp;&nbsp;S&nbsp;:=&nbsp;Clipboard.AsText;
&nbsp;&nbsp;S&nbsp;:=&nbsp;StringReplace(S,&nbsp;'&nbsp;',&nbsp;'&nbsp;',&nbsp;[rfReplaceAll]);
&nbsp;&nbsp;S&nbsp;:=&nbsp;StringReplace(S,&nbsp;#9,&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;',&nbsp;[rfReplaceAll]);
&nbsp;&nbsp;Clipboard.AsText&nbsp;:=&nbsp;S;
end.
41 :
デフォルトの名無しさん :2001/02/11(日) 18:58
43 :
デフォルトの名無しさん :2001/02/11(日) 20:15
44 :
35 :2001/02/11(日) 20:29
なーんだ、ギコBASICで開発じゃないのか・・・。
46 :
デフォルトの名無しさん :2001/02/12(月) 00:02
>>1 ↑とかをマウスポインタをあてると、その部分がHintで表示されるけど、
それってどうやってやるのか、教えて下さい。キボンヌ。
>>129 「どうやって」って具体的に「何が」が分からないのですが、
ギコナビはTHintWindowを使っています。
ポイントされたら、
1、ポイントされたURLをパース。
2、ログを検索。
3、存在したら指定行を取り出す。存在しなかったら終了。
4、取り出したログの行をパース。
5、THintWindowのインスタンスを生成し、表示する文字列やらを設定。
6、表示
これだけ。
48 :
デフォルトの名無しさん :2001/02/12(月) 00:38
一番最初のポイントされたURLをパースってのがわからんです。 それ以外は、分かるんですが…。
49 :
デフォルトの名無しさん :2001/02/12(月) 00:47
>>131 Delphiでいいのかな?
TWebBrowserのOnStatusTextChangeでポイントされたURLがとれるでしょ?
・・・read.cgi?bbs=tech&key=nnnn&st=nn&to=nn
こんな感じで取得出来るよね。
んで、文字列がURLだったら、あとは、?と&でバラバラにして
bbsとkeyとstとtoの左側を取ればログの場所は判断できるでしょ。
本当は、ポイントされた場所の文字列(>>nn)を取得して判断したほうが
スマートだと思うけど、これやるには面倒そうな感じ。
フリーのTWebBrowser拡張版みたいなコンポなら簡単に出来るかも。
そっちのほうは、ギコナビでは使ってないので分かりません。
ごめん。ギコナビがバグっていて、レス番号がdでもない数字になってた。
51 :
デフォルトの名無しさん :2001/02/12(月) 00:55
>TWebBrowserのOnStatusTextChangeでポイントされたURLがとれるでしょ? これを知らなんだ。これで、全部わかったです。ありがとー。 オレもブラウザ作るかな。
52 :
デフォルトの名無しさん :2001/02/12(月) 02:24
どうせならIE使わずにってのは、無理? .DATを直に拾ってくるなら問題ないよね。
53 :
デフォルトの名無しさん :2001/02/12(月) 02:26
54 :
デフォルトの名無しさん :2001/02/12(月) 07:07
俺もそう思う
55 :
turbo type D :2001/02/12(月) 16:25
>>52 ハイパーリンクがあるからこそ
使いやすいな。
IE使わないならAirWebの2chプラグインというのもある。
56 :
デフォルトの名無しさん :2001/02/12(月) 18:21
アスキーアートが崩れると 誰にも評価されないソフトと化す
今日、帰りにDelphi買ってきた。 プログラミング言語って高いな。
いくらで買った?
59 :
デフォルトの名無しさん :2001/02/12(月) 19:57
>>58 一番安いヤツ。
一万六千円くらいの。
あーでももう挫折の予感。
60 :
デフォルトの名無しさん :2001/02/12(月) 20:28
本棚にでも飾っとけ>59
61 :
59 :2001/02/12(月) 20:31
こういうのに触れると、ソフトウェア作者の凄さが痛いほどわかるな。 HelloWorld!万歳!あああああ! 何か本買ってくれば良かった。
62 :
59 :2001/02/12(月) 20:37
こんなでかいの本棚はいんねえよ。
>>60 なんだこの説明書の厚さ。バーカ!Delphiのバーカ!
みなさんこんなのどうやって勉強されたんですか
帰り道のあのワクワクが嘘みたいだ
63 :
turbo type D :2001/02/12(月) 20:44
だいたい、モナジラスレで関係ない話題ふるな。 VB厨房と違ってDelphi使いならエレガントに学習しなさい。
なんだよー。全然進まないね。キタイシテイルノニ。 turbo type Dタンが進める役したら? すごくスキルありそうだし。
67 :
デフォルトの名無しさん :2001/02/13(火) 02:35
ギコナナビとかと違いを出すために誰かMindでやってみるってのは
68 :
turbo type D :2001/02/13(火) 12:33
スキルねーよ。>ヒロユキ(w とりあえず、TUIWebは導入したばかりで 俺はIndyでやるよ。 D6も見据えながら。
ソース表示をすれば、タブ数はわかるるる
70 :
turbo type D :2001/02/13(火) 17:51
IndyでHTTPをダウンロードするのはどうするんですか?
71 :
turbo type D :2001/02/13(火) 18:16
Demo見たらわかった。。。。。 今後はボロカスに言われたらやだから 質問するときはコテハンヤメテおこ。
72 :
turbo type D@monazilla :2001/02/13(火) 18:51
73 :
デフォルトの名無しさん :2001/02/13(火) 18:54
>>72 dat ファイルは単なる CSV なので、
HTML のタグをつけてやらなきゃいけない。
74 :
デフォルトの名無しさん :2001/02/13(火) 20:39
75 :
turbo type D@monazilla :2001/02/13(火) 20:42
トクトクの方がいいかもよ。 容量無制限だしー。CGI可だし。 とりあえず、IndyとUIWebBrowserはインストしておいてヨシって ことでいいですか〜?
76 :
turbo type D@monazilla :2001/02/13(火) 20:49
で、IndyのIdHTTP使って任意のページをUIWebBrowserに表示させるコード。 //********************************* object IdHTTP1: TIdHTTP RecvBufferSize = 1024 HandleRedirects = True ProtocolVersion = pv1_0 Request.Accept = 'text/html, */*' Request.ContentLength = 0 Request.ContentRangeEnd = 0 Request.ContentRangeStart = 0 Request.ProxyPort = 0 Request.UserAgent = 'Mozilla/3.0 (compatible; Indy Library)' Left = 88 Top = 112 end //********************************* procedure TForm1.NanashiAction1Execute(Sender: TObject); var SL: TStringList; SaveFileName: String; Flag: OleVariant; begin SaveFileName := ExtractFilePath(Application.ExeName)+'URLData.html'; SL := TStringList.Create; try IdHTTP1.Request.Username := ''; IdHTTP1.Request.Password := ''; IdHTTP1.Request.ProxyServer := 'xxx.xx.xx.xxx'; IdHTTP1.Request.ProxyPort := 80; IdHTTP1.Request.ContentType := ''; IdHTTP1.Intercept := nil; SL.Text := IdHTTP1.Get(Edit1.Text); SL.SaveToFile(SaveFileName); Flag := 0; UIWebBrowser1.Navigate(SaveFileName, Flag, Flag, Flag, Flag); finally SL.Free; end; end;
77 :
turbo type D@monazilla :2001/02/13(火) 20:50
TUIWebBrowser/TWebBrowserでHTMLファイルを作らなくても ブラウザ表示させる方法はどうやるんだけ? >>ご教授きぼーん。
79 :
デフォルトの名無しさん :2001/02/13(火) 22:28
Indyのコンポどこー?
見てなかったから気が付かなかったけど、
>>74 >turbo type D's page
つのはやめてくれよ。
アヤシイページと俺とは何も関係ないんだから、
あそこ2ch嫌ってるし。
つか、一瞬、個人名バレたのかってヒヤっとしたから
心臓に悪い事はやめてくれ。まじ・(xДx
kylixにもDelphi6にも搭載される予定のネット関係コンポ
Indyのリンクきぼーんよ。
http://www.nevrona.com/Indy/
81 :
デフォルトの名無しさん :2001/02/13(火) 22:40
あ、やっぱまずかった?
>>80 名前だけ消しときます。
82 :
81 :2001/02/13(火) 22:41
83 :
ヒロユキ@ギコナビ :2001/02/13(火) 23:18
>>80 分かっていると思うけど、
・Indy は Server Edition 以上につく
だそうです。Kilixの話ね。
Kilix-MLからの情報です。
84 :
デフォルトの名無しさん :2001/02/13(火) 23:24
Server Editionだとホビープログラマはつらいですね。
>>83 にしても話が進まないので分析/設計とプロトタイプ開発を
同時に進めるようなやり方で行きましょうか?
85 :
デフォルトの名無しさん :2001/02/13(火) 23:29
>>77 procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
HtmlView: DispHTMLDocument;
begin
s := '<html><body><font color=red size="+3">て</font>すと</body></html>';
HtmlView := WebBrowser_V11.Document as DispHTMLDocument;
if HtmlView <> nil then HtmlView.body.innerHTML := s
end;
じゃダメ? ただし、いちどNavigateかGoHomeなどしておく必要アリ。理由不明。
86 :
デフォルトの名無しさん :2001/02/13(火) 23:29
プロトタイプってのは 技術的なプロトタイプね。 たとえばスレ一覧を取るだけのものとか。
87 :
ヒロユキ@ギコナビ :2001/02/14(水) 00:23
>>85 var
v: OleVariant;
begin
v := 0;
WebBrowser1.Navigate('about:blank', v);
end;
これを最初にやるのはダメかな?
>>84 >>86 76でスレ一覧を取れたも同然じゃん。
とりあえず、骨組みとなるクラスを考えましょう。
>>28 にあったように、あのクラスを元にして、決まったら一気に実装。
88 :
turbo type D@monazilla :2001/02/14(水) 09:51
>>レス、サンクス 今から調べる。 コード規約みたいなのを考えてほしい。 コメントの書き方や関数ヘッダのコメントなど。 自分のやり方だと、個人名が特定されそうでやだし〜。 あと、画面周りは 通常の貧弱なMainMenuとToolbarを使ってActionで実装するつもり。 そうするとオプソならではの MenuBar/ControlBar/Coolbar/CuteBarに至る改造を 各々が楽しめるようになるだろう。 Formの位置保存コードなども誰でも実装できそうな部分は 含めない方針でとりあえずめざします。 とりあえずはIndyを使いますが 関数化しておくから、NMHTTPやHTMLCLIを使っての置き換えが 容易に可能なようにもしておきます。 かちゅーしゃのデザインが優れていると感じるので 似たようにします。 3ペインの左がTreeViewにして,2ch用お気に入りもこのTreeに入るようにしたい。 上を、ListView,vsReport/StringGrid→迷っている。 下をTWebBrowserのPageControlにします。 (俺はTUIWebBrowserを使うけど多分置き換え可能だろう) 他に代替案があったらご意見よろしく。
89 :
turbo type D@monazilla :2001/02/14(水) 09:58
関係無いけど コードにはAAを嫌になるほどいれたい。(藁 Delphi自体のフォントをPゴシックに出来ないのは残念。
追加。データ保存はIniファイルでやる。 本当はマルチユーザ対応などレジストリでやるのが楽でいいんだが コアなユーザーはIni好きだから。
>>83 Indyは付属してなくてもDowlLoadすればいい話じゃないか?
HELPファイルなんかはServer版しか日本語化されないだろうけど。
MLで聞いてみてよ。俺ROMってるから(藁
Board一覧データの取得方法考えました。
クラスを作る
&nbsp;&nbsp;//インスタンスが一つだけのクラス
&nbsp;&nbsp;T2chBoardList&nbsp;class
&nbsp;&nbsp;&nbsp;&nbsp;BoardCategorys:&nbsp;TList;//カテゴリのリスト
&nbsp;&nbsp;end;
&nbsp;&nbsp;//カテゴリごとのクラス
&nbsp;&nbsp;TBoardCategory&nbsp;=&nbsp;class;
&nbsp;&nbsp;&nbsp;&nbsp;Title:&nbsp;String;//【おすすめ】などのカテゴリ名
&nbsp;&nbsp;&nbsp;&nbsp;BoardItems:&nbsp;TList;//カテゴリに属する板のTBordItemを保持
&nbsp;&nbsp;end;
&nbsp;&nbsp;//各板ごとのクラス
&nbsp;&nbsp;TBoardItem&nbsp;=&nbsp;class
&nbsp;&nbsp;&nbsp;&nbsp;Title:&nbsp;String;//板のタイトル
&nbsp;&nbsp;&nbsp;&nbsp;Name:&nbsp;String;//板の英語名
&nbsp;&nbsp;&nbsp;&nbsp;URL:&nbsp;String;//板のURL
&nbsp;&nbsp;end;
--
http://salad.2ch.net/bbstable.htmlのソースから 2chBoardListを生成
S&nbsp;:=&nbsp;bbsSource;
CategoryDataStart&nbsp;:=&nbsp;Sから【&lt;B&gt;を探索
CategoryDataEnd&nbsp;:=&nbsp;Sから次の位置の【&lt;B&gt;を探索/見付からない場合は文末
CategoryData&nbsp;:=&nbsp;SのCategoryDataStartからCategoryDataEndまで
CategoryDataが取得できなかったらエラー
SからCategoryDataは削除
CategoryTitleStart&nbsp;:=&nbsp;CategoryDataから【&lt;B&gt;を探索
CategoryTitleEnd&nbsp;:=&nbsp;CategoryDateから&lt;/B&gt;】
CategoryTitle&nbsp;:=&nbsp;CategoryDataのCategoryTitleStartからCategoryTitleEndまで
CategoryTitleが取得できなかったらエラー
BoardCategoryを生成2chBoradListに登録、タイトルに代入
CategoryDataからCategoryTitleは削除
BoardItemCount&nbsp;:=&nbsp;CategoryDataの中ノ&lt;Aと&lt;/A&gt;の数を数える→一致しなければエラー
for&nbsp;i=0&nbsp;to&nbsp;BoardItemCount-1&nbsp;do
begin
&nbsp;&nbsp;BoardItemDataStart&nbsp;:=&nbsp;CategoryDataから&lt;A&nbsp;HREF=を検索
&nbsp;&nbsp;BoardItemDataEnd&nbsp;:=&nbsp;CategoryDataから&lt;/A&gt;を検索
&nbsp;&nbsp;BoardItemData&nbsp;:=&nbsp;CategoryDataのBoardItemDataStartからBoardItemDataEndまで
&nbsp;&nbsp;CategoryDataからBoarItemDataは削除
&nbsp;&nbsp;BoardItemDataは&lt;A...&gt;...&lt;/A&gt;という文字列になっているので解析して
&nbsp;&nbsp;&nbsp;&nbsp;リンク先とタイトルを取得する。
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って何?
>>94 厳しいな(TДT
浮津堕コーディングしよう。
97 :
turbo type D@monazilla :2001/02/14(水) 13:50
>>93 を考えていて
>>28 のクラスを再度確認してみた
T2chObjectっておかしくないか?
すべての基底クラスにダウソ開始/終了
なんていらないと思うのだが、
特にT2chResponseがT2chObjectから継承する
必要はないんじゃないか?
俺のクラス設計が甘いのか?わからない。
スレのダウンロードから
レス一つ一つのダウンロードメソッドを呼ぶ方がいいのか?
俺も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以降。
フォントの問題は、
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ですか。ありがとうございます。
いろいろ試してみます。
・・・調べてみますと言えないのが悲しい。
サーチエンジンを使って、英語とも格闘して、試行錯誤します。
>>103 >【】の間をカテゴリ名として、board.txtを作ってる。
>(2chブラウザと同じかな)
うんにゃ。<B></B>だよ。じゃないと、www.2ch.net/bbsmenu.htmlを読めない。
106 :
turbo type D@monazilla :2001/02/14(水) 16:14
107 :
デフォルトの名無しさん :2001/02/14(水) 16:15
んじゃコード規約(Delphi)を勝手に決めます。 コメントの書き方だけど // // ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ // ( ´∀`)< 文字列からほげほげを抜き出す // ( ) \________________________ // | | | // (__)_) // function .... やっぱこんなの? あ、Delphiのエディタじゃ AA 無理だっけ?
108 :
デフォルトの名無しさん :2001/02/14(水) 16:27
end.の下の行は //============== 終了============== をつける。意味ないけど。
その通りっす。すみませんです。 さらに、カテゴリの重複→カテゴリの連続っす。 あれから少し調べると、 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
モナーのセソフ
機能の説明だけだと、わかりにくいから
更新履歴と引数/戻り値の説明も
入れれるようにしてプリ〜ズ
//============== 終了==============
等幅フォントだと、こんなもんかな?
//
// ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
// (´∀`)< ボードの一覧を
http://salad.2ch.net/bbstable.htmlより得る // ( ) \________________________
// | | |
// (__)_)
//
しかし、このコメントがついてたら
まじで周りにビクビクしながらコード書かなきゃいけないから
すげー疲れる(w
等幅でもずれとりまんがな。空白が寄せられただけ? ところで、94さんは2chブラウザーの作者さんのような気がするけど、違うのかな?
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で表示させたかったが、無理だわ。
また先ですわ。
かちゅしゃは右端じゃなくて左端でした あせって左右もわからなくなってる。 98さんはVCLバリバリ使ってる気がするが,,,
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。
テクニシャンな方々はここだけでもコテハンきぼん。 特に 119 さん、なんかハンドル使ってください。
126 :
書記さん :2001/02/15(木) 00:34
>>125 すんづれぇーしました。書記さんです。
ジオのページ立ち上げた張本人です。
なお、ただいまぜんぜん役に立たないドキュソ、、、
じゃなくてドキュメントつくってます。
127 :
書記さん :2001/02/15(木) 00:47
128 :
デフォルトの名無しさん :2001/02/15(木) 00:48
>>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) の説明をキボぅ,(なるべく多くの人が参加しやすくなるから)
関係ないけど monazillaよりモナプロ〜ラ〜やギコプロ〜ラ〜の方が いいというような思いも…センスナイっすか?
面白そうなことやってますね〜。 一応Delphi,C++Builder使いだけど、スキルがないから参加は無理っぽそう(汗
とりあえず暫定Main.dfm/Mail.pas(3ペインの画面だけ)
をアプしたいけど、アプ板どこかないかな。
>>140 そういわずに、俺もスキルナイナイから安心せ。
とりあえず、HTTPCLIもIndyもいらんと思うのだがどうか。
「>>」の扱いはどうするの?
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="
[email protected] ">
<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
147 :
145 :2001/02/15(木) 12:05
148 :
デフォルトの名無しさん :2001/02/15(木) 12:35
>>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
154 :
デフォルトの名無しさん :2001/02/15(木) 14:16
俺も昔はそう(標準コンポ好き)だったけど、今は コンポぐらいインストシロヤ(゚Д゚)ゴルァ っていいたいぞ。厨房じゃあるまいし 例えばブラウザ作る際に 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
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
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 でやるっつーことで決定しましょ。
同じコンポ使って別々に書くわけじゃないから問題無いでしょー。
>>169 いまどきの子はメモリリークぐらいじゃびっくりしません。
172 :
書記さん :2001/02/15(木) 16:08
>>138 とりゃーず HTTPCLI のインスト方法だけアップしました。
投げやりのやっつけですが。。
Indyはまだ書記さんもセットアップしてないので待ってー
173 :
turbo type D@monazilla :2001/02/15(木) 16:35
174 :
turbo type D@monazilla :2001/02/15(木) 16:40
175 :
書記さん :2001/02/15(木) 16:44
「これをかっこよくクリック」は不覚にもワラタ
177 :
デフォルトの名無しさん :2001/02/15(木) 16:53
>175 ジオ以外のところからアップロードさせないと巧く行かないから 別の所にアップローダを作るか、 アップロードフォームの所に一旦保存してからローカルに動かせって 注意書きを書いた方がいいよ。
ローカルに保存してアップしてもらうようにしました。
180 :
デフォルトの名無しさん :2001/02/15(木) 18:50
>179 ジオだったら アップロードした人がゲストブックに説明書くようにしたらどうだ?
181 :
書記さん :2001/02/15(木) 19:20
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では、 どうする予定でしょうか?
そういう難しいことは決まってないに 2億はらたいら。お願いしまsう。
190 :
フッサール少佐 :2001/02/16(金) 00:31
高速化をするには、当然index化はするでしょう。 indexはバイナリファイルをTStreamでガリガリやるのが一番速いです。 さらにキチ○イのような速度を追求するなら、Streamのバッファリング も行います。moveしまくりで、これがDelphiのソースなのか…という 状態になりますが。それにindexのバージョンアップに多少の問題は残りますー。 バイナリファイルにAnsiString型を格納するには、その文字列長の 情報が必要になります。まだ先の話ですけどね。まずは、基本機能 がまともに動かないといけません。
191 :
デフォルトの名無しさん :2001/02/16(金) 00:48
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;
全く関係ないが、ギコナビのIEくりそつキャビネット部分ってなんなの? 不思議モナー
194 :
ヒロユキ@ギコナビ :2001/02/16(金) 00:59
>>190 indexファイルのバージョンアップですが、ギコナビでは、ファイルの先頭に
バージョンを入れています。
バージョンを比較して、古いなら、新バージョンのindexを作ろうかと思っています。
#まだ、indexのバージョンアップをしていないので、どうなるかわかりませんが。
195 :
turbo type D :2001/02/16(金) 01:01
字下げてないと病気になりそうなので〜〜〜〜
>>192 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, '&hearts;', '?', [rfReplaceAll]);
body := StringReplace(Body, '&#', '&#', [rfReplaceAll]);
//Body := ConvHtmlLink(Body);
{<>"&}
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;
196 :
ヒロユキ@ギコナビ :2001/02/16(金) 01:05
>>193 実際のIEは、レバー(TCoolBar)+ツールバー+ツリーのようです。
DelphiのTCoolBarはバグっているようで、実現できなかったので、
TPanel(藁)などを駆使しています。
アプできる場所ってどこ?
フォームだけアプするよ。
でも、今日は寝ます。
ねましょうねましょう。 オレは部屋が寒いので手がかじかんで キーボード打てません、鬱だ0721しぃよ
198 :
フッサール少佐 :2001/02/16(金) 01:09
>>194 そうですな。私も他のソフトでその方法をやっとります。
ただ、それを本体のコードで持っちゃうと美しくないというか(別クラスでもいやん)。
単純にそれだけですけど。
自動的に新indexに変換というのはユーザーにやさしい仕様でありまするな。
そーいえば、ボタンやアイコンのデザイン部隊はいないのか? 「とりあえず参加して〜」って人がそっち方面を充実させてくれれば、 開発部隊も気楽になると思う。 俺はセンスないんで無理ですが。
仕様は飲みながら決めよーぜー
201 :
turbo type D :2001/02/16(金) 03:09
>>200 そう"しーよーおーーーー"
んーマターリ
どうでもいいが、TFileStreamは無茶苦茶遅いぜー。 iostream使うべ。 あと、WTLならCPaneContainerってのがあるぜー。 これをコンポーネント化したのがあるから、気が向いたらアップするー。 以上、BCB使いの寝言。
DelphianWorldMLで出てたURLクリッカブルRichEdit 動作しねーんでやんの。Win98/2000あたりだけ対応なのかな。
DelphiにもBCBコンポを使えるようにC++コンパイラを入れて欲しいよな。
BCBは、Delphiのコードがコンパイルできるって言っても、 それをメインにして開発できるわけじゃないからなあ。 俺は、それが出来るもんだと思ってBCB買って失敗した…。 やった、DelphiでC++が使える!とか思ってたのに。
206 :
turbo type D@monazilla :2001/02/16(金) 11:57
2chって本文何行何文字までなの
207 :
turbo type D@monazilla :2001/02/16(金) 11:59
208 :
turbo type D@monazilla :2001/02/16(金) 12:15
monazilla_studioでアプしようとしてるモナカ(最中)ですが 同名ファイルでも問題ないかな?
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, '鰓');
210 :
turbo type D@monazilla :2001/02/16(金) 12:40
>>209 続き
//カテゴリを生成
NiChanCategory := TNichCategory.Create;
NiChanCategory.Title := CategoryTitle;
NiChannel.AddCategory(NiChanCategory);
//TreeNodeを作成
CategoryTreeNode := TTreeView(BaseTreeNode.TreeView).
Items.AddChild(BaseTreeNode, CategoryTitle);
CategoryTreeNode.Data := NiChanCategory;
Delete(CategoryData, CategoryTitleStart, CategoryTitleEnd+3 - CategoryTitleStart +1);
//Boardを取得する
BoardCount := StrCount1('<A HREF=', AnsiUpperCase(CategoryData));
if BoardCount = 0 then Assert(false, '鰓');
if BoardCount <> StrCount1('</A>', AnsiUpperCase(CategoryData)) then
Assert(false, '鰓');
for i:=0 to BoardCount-1 do
begin
//<A HREF=
http://www.. >..</A>の文字列を得る
BoardDataStart := AnsiPos('<A HREF=', AnsiUpperCase(CategoryData));
BoardDataEnd := AnsiPos('</A>', AnsiUpperCase(CategoryData));
BoardData := Copy(CategoryData, BoardDataStart, BoardDataEnd+3 - BoardDataStart +1);
if BoardData= '' then continue;
Delete(CategoryData, BoardDataStart, BoardDataEnd+3 - BoardDataStart +1);
//<A HREF=
http://www.. >..</A>からAタグを除去
BoardTitleStart := AnsiPos('>', AnsiUpperCase(BoardData) ) + 1;
BoardTitleEnd := AnsiPos('</A>', AnsiUpperCase(BoardData) ) -1;
BoardTitle := Copy(BoardData, BoardTitleStart, BoardTitleEnd - BoardTitleStart +1);
if BoardTitle = '' then continue;
//mailtoリンクならボードではないので無視
if AnsiPos('<A HREF=MAILTO', AnsiUpperCase(BoardData) ) <> 0 then continue;
//<A HREF=
http://www.. >..</A>からURLを取得
BoardURLStart := AnsiPos('
HTTP:// ', AnsiUpperCase(BoardData) );
BoardURLEnd := AnsiPos('>', BoardData) - 1;
BoardURL := Copy(BoardData, BoardURLStart, BoardURLEnd - BoardURLStart + 1);
if BoardURL = '' then continue;
//ボードを生成
NiChanBoard := TNichBoard.Create;
NiChanBoard.Title := BoardTitle;
NiChanBoard.URL := BoardURL;
NiChanBoard.Name := '';//米 とりあえず必要ではないのでまだ実装していない。
NiChannel.AddBoard(NiChanBoard);
NiChanCategory.AddBoard(NiChanBoard);
//TreeNodeを生成
BoardTreeNode := TTreeView(BaseTreeNode.TreeView).Items.
AddChild(CategoryTreeNode, BoardTitle);
BoardTreeNode.Data := NiChanBoard;
end;
end;
end;
211 :
turbo type D@monazilla :2001/02/16(金) 13:14
そういえば、Indyのインストール方法もmozilla.orgに書いてほしい。
--(゚Д゚)ゴルァ--(゚Д゚)ゴルァ--(゚Д゚)ゴルァ--(゚Д゚)ゴルァ--(゚Д゚)ゴルァ--
まず、D4/D5/BCB4/BCB5どれでもいいから
きっちりアップデートしておく。
http://www.nevrona.com/Indy/Download.html のページの下の方の
Indy(Winshoes 8) v8.0
のリンク先
http://www.nevrona.com/Indy/download80.html ページの
8.0.22版の
一番上のリンクをクリックしてexeをダウソすれ
exeが手に入るのでそれを実行。
あとはウィザードに従ってFinishを連打する
インストールフォルダ選んだり
言語選んだり
D4/D5/BCB4/BCB5を選んだりする場面があるが
難しい選択肢は無い。
HELPファイルもインストールが自動なのでFinish押して
それだけでオワリ。
--(゚Д゚)ゴルァ--(゚Д゚)ゴルァ--(゚Д゚)ゴルァ--(゚Д゚)ゴルァ--(゚Д゚)ゴルァ--
聞いてアロエリーナ ちょっと言いにくいんだけど 聞いてアロエリーナ 「一人カキコミ、ムナシいの」 聞いてくれてあーりがと アロエリーナ♪ \______ ________/ |/ Ψ (-_-) □ (∩∩)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
気にするな。ある程度形になるまでは、一人は先導者が必要。廃れるより数倍もまし。
>>211 Automatic Installがあるのか楽だね。
リンクありがと。
慣れているC++Builderでいじってみるよ。
にしても大量にコンポーネントが登録されるな。
215 :
見物人 :2001/02/16(金) 15:59
>>213 そのとおり!
こういうプロジェクトはそれっぽく動きだすまで
誰かがぐいぐいひっぱっていかないとね。
というわけでagezilla
ん?モナプロ〜ラ〜はボード一覧をbbstable.htmlかbbsmenu.htmlの ままで持つのかな? board.txtとかboard.2chとかみたく、 取得して切り分けた後、別ファイルで保存すると思ってた。 ギコナビはboard.iniをXML化するって?XML知らんがな。ははは。
217 :
turbo type D@monazilla :2001/02/16(金) 17:39
>>216 どっちでもいいよん。
今の所一応、ローカルファイルに保存して試してるだけナリ。
データ解析はOKになったので
保存形式など加工は自由ですニャ。
毎度毎度読み込んだり解析したりすると
遅いから保存形式考えますか。
高速iniファイル互換アクセスコンポとか
あれば利用したいよーん。(高速化メンドうだから)
だれか知らない?
時間はそんなに考えなくていいんじゃないかな。 多分、起動時と更新時にしかつかわないから。 それよりも、加工のしやすさを考えて別ファイルにしようよ。 例えば、行かない板を編集したりしやすいし、 ちょっとしたツールを作るときもそのほうがやりやすい。 まあ、全文検索をしたりするのは、 内部データにアクセスする形にすればいいだろうけど、 外からもいじりやすいほうがいいでしょ。
219 :
turbo type D@monazilla :2001/02/16(金) 18:58
>>218 おおよそ了解。
行かない板をテキストファイルで編集加工
というのはちょっとどうかと思う。
ユーザーにそれさせるべきかあ?
(2chネラはそれくらい造作ないにしてもだ。)
オレ自身がかちゅーしゃの板データを弄くる気にならないもん。
意見求むー。
ちょっとしたツールのことはリョウカイ
TreeView構造にしているのは
お気に入りを板一覧と同様のUIで自分で管理
出来るようにさせたいから。
IEのお気に入りと同じくURLショートカットを集めたフォルダ構造で
お気に入りを構成させるつもり。>>まだ先。
220 :
turbo type D@monazilla :2001/02/16(金) 19:00
現状は
http://salad.2ch.net/bbstable.html のソースから直読みで
データ構造とTreeViewを
作ってしまっているが、動作確認もしたので
(
>>207 のエラー処理に自信がない点だれか教えてクレクレタコラ)
データを受け持つTNich...クラスは独立して
HTMLソースから>>TNich...etc
TNich...etc>>TreeView
TNich...etc>>Iniもしくは独自ファイル
TNich...etc<<Iniもしくは独自ファイル
こんな感じの機能を実装しますね。
::::誰かやってくれてもいいんだよ(w
そうそう現状はIndy組み込んでいないので
誰でもインストできるはずだよ。
ばっちりオ^プンソですな。
それにしても関数どうしても100行超えてしまうな。
構造化も無理っぽいし。
理想はもっと構造化コマギレだがどうして現実は難しい。
イトアハレ、MLでNMFTP地獄に巻き込まれてる人発見。
こういうスレ好きだから、廃れないでくれ。頼む。
223 :
デフォルトの名無しさん :2001/02/16(金) 21:18
>行かない板をテキストファイルで編集加工 >というのはちょっとどうかと思う。 >ユーザーにそれさせるべきかあ? こーゆーの(GUIで編集等)は、欲しい人がいれば誰かが作るかも。 というか、それも「ちょっとしたツール」だね。
224 :
書記さん :2001/02/16(金) 21:45
>>208 同名でも問題ないです!アップしちゃってください!
できればファイル名にバージョン・レベル番号とかつけてもらいたいー。
226 :
ヒロユキ@ギコナビ :2001/02/16(金) 23:06
>>217 Delphi標準のTMemIniFileは?ギコナビでも使っているし。
API使わないで、直にファイル操作しているみたいなので、
64Kの制限とかないし。(速いかどうかはわからないけど)
さすがに、191はネタだろ(藁
228 :
ヒロユキ@ギコナビ :2001/02/16(金) 23:34
ギコナビのメインフォームだけをアップしました。 フォームだけなので、コードはありません。 煮るなり焼くなりパクるなり捨てるなり自由にお使いください。
229 :
書記さん :2001/02/16(金) 23:49
自分のものはオープンする気のないヤツが どーでもいいようなとこだけ小出しにして オープンプロジェクトに口はさむのはどーかと思うが。 ギコナビ君、正直何考えてる? 人気回復?オープンプロジェクトの誘導?
231 :
フッサール少佐 :2001/02/17(土) 00:18
了解でーす。
>>230 適度に口をはさんで協力してくれてるんだから
どうでもいいと思うがのお。
オプソでなくても、その辺が絡むとうざい。
せっかくの2chだ。深く考えないで逝こうぜ。
|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|| || 煽りは無視。 Λ_Λ いいですね。 || \ (゜ー゜*) ||________⊂⊂ | ∧∧ ∧∧ ∧∧ | ̄ ̄ ̄ ̄| ( ∧∧ ( ∧∧ ( ∧∧ | | 〜(_( ∧∧ __( ∧∧__( ∧∧ ̄ ̄ ̄ 〜(_( ∧∧_( ∧∧_( ∧∧ は〜い、先生。 〜(_( ,,)〜(_( ,,)〜(_( ,,) 〜(___) 〜(___) 〜(___)
235 :
デフォルトの名無しさん :2001/02/17(土) 01:31
あの〜D4の人もいると思うので(オレ)、 D5限定でない場合はフォームをD4互換でおねがいします。 以下引用、 Delphi 5 で作成したフォームファイル(DFM)は,デフォルトでバイナリではなくテキストとして保存されるようになりました。したがって,Delphi 5 で作成したフォームを以前のバージョンの Delphi で使用したい場合は,フォームをバイナリとして保存する必要があります。フォームを右クリックして[テキスト形式 DFM]のチェックを外すと,フォームはバイナリとして保存されます。デフォルトの動作としてフォームをバイナリで保存したい場合は,[ツール|環境オプション]の[設定]ページで[テキスト形式で作成]のチェックを外しておきます。
237 :
ヒロユキ@ギコナビ :2001/02/17(土) 02:41
このスレの趣旨とは、全く関係の無い話ですみません。
これ一回だけにします。
>>230 >自分のものはオープンする気のないヤツが
オープンソースプロジェクトに参加する人は、それとは「別の」クローズドなソフトを
開発していてはダメなの?
別にギコナビで商売しているわけではないので、いいと思うんだけどなぁ。
それとも、monazillaとギコナビは仲良くしてはだめ?
monazillaとギコナビの最終目標は相手を潰すことなの?
>ギコナビ君、正直何考えてる?
このプロジェクトを誘導したりしようとは思ってないよ。
そんな時間的余裕も技術的な知識も人を動かす力も無いし。
別にギコナビがどうのこうのって、関係ないでしょ?
ギコナビの人気回復の話は、失笑ですね。
正確に言うと、もともと人気がないから回復とは言わないですね。
なんか勘違いしているようですが、ギコナビのシェアを高めるために
僕がここへ書き込むわけではありません。
どんな方法を使ってでもシェアをとりたいなら、自作自演で各板に書きまくれば済む話。
ギコナビは、ソースを公開する予定は無かった(ギコナビですら公開しようと思って作った
訳ではないです)ので、現在も公開していませんが、
同じツールを使っていて、同じジャンルのオープンソースプロジェクトが出来たから、
いろいろ、参考になると思われる部分を公開しただけ。
>どーでもいいようなとこだけ小出しにして
どーでもいいようなとこだけですみませんでした。
結構苦労して作った部分なんだけどなぁ。
UIとか、使用しているクラス名、苦労した話やアイデアとかは、殆どの人には
くだらないかもしれないけど、もしかしたら、そういう話を欲しがって
いる人がいるかもしれないと思ってやったことなんだけど、
余計なお世話だったようで。
>オープンプロジェクトに口はさむのはどーかと思うが。
オープンソースって誰でも参加出来ると思ってたよ。
ごめんね。「クローズ」なソフトを作っている人が「オープン」の場所で
どーでもいいような知識をばら撒いて。
誰でも参加出来るからこそ、オープンソースだと思うけどね。 >○○が参加するのはどうか なんてのは、参加する者を限定する最悪な考え方だ。 230がどれほどの貢献をしているのかはあえて聞かないが、 ヒロユキはちゃんと貢献している。 経験を生かしての意見だったり、過去に作ったコードの一部だったり。 ヒロユキが好意で書きこんでいる事を、 >人気回復?オープンプロジェクトの誘導? こんな考え方しか出来ないのは、よほど心が貧しいのだろう。
230は、オープンソース勘違い信者。 参加を制限するなら、オープンソースで行う意味が無いのではないか。
241 :
turbotypeD@モナぢら :2001/02/17(土) 15:59
242 :
turbotypeD@モナぢら :2001/02/17(土) 16:01
>>226 ヒロユキさんくす。
TMemIniFile使ってみる。遅くてもOK、
遅かったらいずれ誰かにTMemIniFileと同仕様で
高速化してもらうことにしませう。
243 :
turbotypeD@モナぢら :2001/02/17(土) 16:02
ヒロユキ@ギコナビには 感謝感謝。
244 :
turbotypeD@モナぢら :2001/02/17(土) 16:12
ライセンスとか"どーでも"いいので、 マターリいくぜ! つことで、しょモナーい事を頭で考える前に コード実装カンガエマソ。 コード実装できそうにないみんなさんも UIのアイデアとかあったらじゃんじゃん炒ってくれよ。
245 :
見物人 :2001/02/17(土) 16:19
みんながんばってくださーい。 ところで何かコントリビュートしたいんだけどCのコードじゃだめ?
246 :
turbotypeD@モナぢら :2001/02/17(土) 16:23
何?コントリビュ^トって。 あと、BCB<<>>Delphiのコード置換って めちゃらくらくだと思うのだが、 自動変換するソフト知らないか?探せば必ずあると思われ。 そしたらBCBで参加もできるし。
247 :
turbotypeD@モナぢら :2001/02/17(土) 17:28
会社にモナプロラのソース忘れた。最悪! とりにいくか。(xДx)トホホもな。
248 :
書記さん :2001/02/17(土) 17:30
FTPアカウントもってるならソースをメディアで持ち歩かなくても いいと思うが。
251 :
見物人 :2001/02/17(土) 19:21
252 :
フッサール少佐 :2001/02/17(土) 19:25
TWebBrowserで書くときは、無理やりWriteしちゃって追加書き込みできるようになったんだけど、消すことができん。教えてキボンヌ。 Streamで書き込みする方法とかもキボンヌ。
253 :
デフォルトの名無しさん :2001/02/17(土) 19:35
>>251 ぜひ、FreeBSD版 monazillaをおがみたい!!
254 :
見物人 :2001/02/17(土) 19:56
>>253 うーむ、、じゃとりあえずUIでも作ってみるよ。
255 :
見物人 :2001/02/17(土) 19:57
副産物としてlib2chみたいなの作りたいな。。とか。。
それにしても結構面倒そう。
257 :
turbotypeD@モナぢら :2001/02/17(土) 20:47
>>Linux版ならkylixでたら、 誰かやりそう。 多分monazilla基本部分は API叩き無しのCLXで十分作れるものになるはず。 やっぱ今日、取りに行くのヤメタ。だるすぎる。 明日の朝近所に用事があるので会社よるわ。(決して出社ではない。) いつもMOでデータ同期をしていたんだが ぬかってしまいました。
258 :
見物人 :2001/02/17(土) 21:00
とりあえずGUIで動いて、読み込めるぐらいのを目指してみようかな、、、
名前はgikozillaってことで。
>>257 ツールキットはGTKを使うのでFreeBSD依存ってことはないと思う。
ただ、僕はFreeBSDを使ってるので。
259 :
gikozilla :2001/02/17(土) 21:04
名前を見物人からgikozillaにすることにしました。 目標(?)としては、読み込みながら表示出来るようにしたい。 ついでに自分で作った拡張言語も使えるようにしたい。
260 :
turbotypeD@モナぢら :2001/02/17(土) 21:10
プアパスカルの人かな?
261 :
書記さん :2001/02/17(土) 21:13
>>見物人 gikozilla歓迎です! で、なんて書けばいいかな、 gikozilla = PC-UNIX + GTK + C ? FreeBSDとかGTKとかよーわからんです、、。
しまった、ハンドル変更されたんですね。 修正。 >>gikozillaさん gikozillaプロジェクト歓迎です!
コンパイル済みコンポーネントならDelphi/BCB共通で使えるでしょ? 標準コンポメインでいくならあんま意味無いか。 俺もなんかコントリビュートしたいなあ。 3月半ばになれば時間作れるんだけど
264 :
gikozilla :2001/02/17(土) 23:15
とりあえず、ログ読み込みはどうにかなりそうです。
GUIも骨組みは出来ました。
>>261 「GTKで書かれた2ちゃんねる専用ログ巡回ソフトです。」
とでもしておいてください。
265 :
フッサール少佐 :2001/02/18(日) 01:47
あの〜例えばこことロビー(teri?)とかの sabject.txt の仕様が違うみたいなんですが、 こーゆーのは何種類くらいあるのですか?サーバごとですか? ご存知の方はご報告ください。
267 :
デフォルトの名無しさん :2001/02/18(日) 04:08
頼む、sourceforge使ってくれ・・・。
>>266 > こーゆーのは何種類くらいあるのですか?サーバごとですか?
「,」と「<>」と「<>」だったかな。
どの板がどれってのは、サーバとか板の種類とかは、全然関係ないと思う。
あと、区切が「,」じゃないとこは本文の「,」が「,」に置換されてないっ
てのも注意。
頑張れぇ。
「@」「`」が「,」に置換されてる。。。 鬱だ。。。
>>268 とりあえず14カラムめの判定から何パターンかやればいいのかな。
ありがとう。頑張るぅ。
>>268 > どの板がどれってのは、サーバとか板の種類とかは、全然関係ないと思う。
って思ってたんだけど関係あるみたいな・・・(汗)。
とりあえず、今ざっと見直した感じ、teriが「<>」で、他は「,」っぽい。
前「<>」使ってるとこもあったと思ったんだけどな。
ゴメンナサイ。
272 :
turbo type D@monazilla :2001/02/18(日) 10:44
仕事場からだわ〜。 monaplorerアプしたつもりだけど 確認できないな。
273 :
turbo type D@monazilla :2001/02/18(日) 10:50
アップされたファイルが 出てこないぞ。 会社がFTPサポしてないから無理なのか? 前 ぁ ゃι ぃソスの方なら大丈夫だったんだけどなー?。 一応、無理無理にぁ ゃι ぃの方にもアプしておく ファイル名はmonaplorer.lzh コメンとはプモナ君としておくよ。 すぐに削除されるの目に見えてるけど。
274 :
turbo type D@monazilla :2001/02/18(日) 11:03
"もなヂラ掲示板" 本文容量制限なしにしていただけないでせうか? ソースアプしたいが分割掲載するのは、めんどくさいっす。 一応、クラス部分のソースはアプしました。
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
281 :
98 :2001/02/18(日) 15:32
282 :
98 :2001/02/18(日) 15:36
ごめん、本当に9-7-7-0-7-0-6-4-1.datって (ブラウザから)書き込んでるつもりなんだけど、なぜか変化する。
283 :
書記さん :2001/02/18(日) 17:16
ボード一覧の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;
オレもsubject.txtの読み込みにとりかかろっと。
286 :
デフォルトの名無しさん :2001/02/18(日) 18:52
HTMLパーサって使わないの? まともなのがないから?
使い方教えてくれたら使うよ。オレや他の人が知らないだけかもね。
288 :
98 :2001/02/18(日) 19:00
289 :
98 :2001/02/18(日) 19:02
うむ、何故か0-7-0が消されてしまうやうだ。荒らし対策かな? datにも残っていので、書きこみ時に消されてしまうやうだ。
半角スペース->&nbsp機能つけてね > all
292 :
書記さん :2001/02/18(日) 20:00
>>291 えっと、Monazilla Studioを入れているならそれ表示して
「ダウンロード、つーかファイルマネージャ起動」をクリックして
「入ってよし」をクリックしてジオにログイン、で、「src」ボタンクリックで
アップされているソース一覧が出ますので、そこで確認してください。
書記さん、サンクス。
294 :
フッサール少佐 :2001/02/18(日) 20:42
がんばっておるねー。(w オフ/オン、モードわけ、俺も考えておこ。 そのまえに、スレ一覧表示を実装しないとナー
そうそう、コード規約みたいなものを書いていました。 ユニットヘッダ (* // ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ // (´∀`)< モナプロ〜ラ〜のソースだモナー // ( ) \________________________ // | | | // (__)_) 01/02/18 モナーアスキーをいれてみました。 履歴をつけてみました。 //*)
////////////////////////////////////////////////////////////
{// 名前:turbo type
[email protected] (藁
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
聞いてアロエリーナ ちょっと言いにくいんだけど
聞いてアロエリーナ
ココカラノコードハ: 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
書記さん、対応はやいなあ。age
300 :
アロエリーナ2号 :2001/02/19(月) 01:51
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の利点を放棄しちゃうことになるか。
>>307 なんかあのエクスプローラの動作っていかにもAPIでデキマスデー
といわんばかりの動作だから実現させたいな。
・・しかしそんな枝葉にこだわっていたら完成しないから
いずれ誰かに実装してもらう事にしよっ。
あと、エクスプローラListView/vsReportの上下の三角マーク▽△
これもAPIだと思うのだがどうやるのだろう。
誰か教えてね。
なんか、オレばかり書き込んでんだけど.... 槍田氏悩した方が逝ってヨシですか? スレ一覧取得コードは出来ました。 ローカルにデータさえあればぽんぽんと スレ閲覧が出来るようになった。 レスはまだなので 次はdatの解析する. ヒロユキ@ギコナビさんやかちゅ〜しゃ などで実装されているように ローカルの部分とオンラインの部分の 兼ね合わせをどうやるといいのかが よくわからない。
310 :
gikozilla :2001/02/19(月) 17:59
全然進んでません。。。
>>309 >ローカルの部分とオンラインの部分の
>兼ね合わせをどうやるといいのかが
よくわからないけど、
o オンラインモードの場合
スレッドを読み込みに行く時.datが更新されているかチェックする。
o オフラインモードの場合
ローカルにデータがあればそれを表示する。
なければ、読み込みに行く。
ローカルのデータを優先するかどうかの設定??
311 :
デフォルトの名無しさん :2001/02/19(月) 18:27
>>305 >>307 少なくともMFCではListViewにスタイルを設定するだけでできます。
コモンコントロールの機能のようなので、Delphiもおなじでしょう。
エクスプローラの詳細表示で
[名前|サイズ|種類|更新日時]
これを自由に入れ替える機能。
>>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
317 :
gikozilla :2001/02/19(月) 20:55
WinInetはnバイト目以降を取得とかってできるの? CreateFile, ReadFileでも試してみようかな。
>>314 2chブラウザの方でしたか!
ありがたや・・・
324 :
デフォルトの名無しさん :2001/02/19(月) 22:41
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 たしか出来たはず。
328 :
フッサール少佐 :2001/02/19(月) 23:31
329 :
フッサール少佐 :2001/02/19(月) 23:31
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回アクセスしないといけないのが難点。
でも、tako鯖はdat/を読めないので注意してね。
>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でした。
>>339 Keep-Aliveにするといつ終ったか分かんなくない?
parseしつつ表示ってんだったらいいだろうけど、
それって結構面倒な気がする。
つか、Keep-Alive にしてリクエスト送りまくるって話なんかな。
しつもーん。
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 ;)
要望が多ければそうする。
もしかしてあぼーんすると.datのファイルサイズ変わっちゃう? だとすると差分の取得がおかしくなりそう。
あぼーん、について教えて。 本当に全くわからない。(藁 かちゅーしゃ使ってるのにね。
346 :
デフォルトの名無しさん :2001/02/20(火) 18:12
>>344 かわるよ。そこがこの手のツールが各自工夫するところ。
さらにあぼーんには、「ノーマルあぼーん」(全フィールドがあぼーんになる)
と、「サイレントあぼーん」(datの行ごと削除、痕跡が残らない)があります。
固定長あぼーん(余ったところを空白などで埋める)の要望もあるが、
マイノリティなツールのために2ch側に対応を求めるのは本末転倒だと思います。
現在、各ツールののあぼーんへの対処は、
1.あぼーんを検出したら、dat全部読み直し
2.あぼーんを検出したら、少し前から読み直して、テキスト比較で前回の
バイトオフセットを探して読み込み
3.datの差分読み込みはしない
あたりになっております。あぼーん検出は保存位置から読み出して、そこが
行頭か否かで判断かな?
ちなみに、俺(2chブラウザ)は3。差分読み込みやる気なし。
dat読みは全読み込みのときのみ。
WinInetで.datファイルを10分割して同時にダウソしたら 超高速ダウソできる???
>>ボード一覧 スレ一覧の間違い。 腹減った。
350 :
デフォルトの名無しさん :2001/02/20(火) 20:18
351 :
フッサール少佐 :2001/02/20(火) 22:05
更新チェック&差分ダウンロードできるなら巡回機能付けてね
353 :
フッサール少佐 :2001/02/21(水) 00:46
>>302 ログはドメイン名を元にするようにした。
例えば、yahoo板はこんな感じ。
\logs\salad.2ch.net.yahoo\977080207.dat
これならかぶらんだろう。
354 :
フッサール少佐 :2001/02/21(水) 00:48
>>352 無ければ、自分で作るのだ。それがオープンソースの醍醐味でもある。
つーわけで、自分で作れ。Delphi買ってコイ。
同意。 &nbsp変換もそうだが、このスレに「○○きぼーん」は良くない。 プロトタイプのコードでも作って、導入を促すようにすべき。
最後の;つけなかったのに、nbspが変換されちった。
確かに、実装困難なものを
現時点で、きぼーん、されてもつらいものがある。
差分ダウソ&更新はまーだ先ね。マターリいこうぜ。
メニュー項目くらい
誰か案をだしてほしい。
>>356 オレもおろろいた。
>>350 &少佐、
メモリク情報サンクス。
リクしているかどうかも不確かながらデバッグにとりかかる。
自分で無理だったら
Tree型Dataの破棄と更新を報告させてもらうね。
さて、書記さんも更新ネタがなさそうなので 昨日まとめた、WinInetのDelphi仕様コード公開。 連続カキコすまそね。 全コードusesにWinInetを追加するだけで動作するはず。 INTERNET_OPEN_TYPE_DIRECT と INTERNET_OPEN_TYPE_PRECONFIG は適当に置き換えてくれ。MemoとかButtonとかも適当に。
//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;
//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;
//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;
//ネット上のファイル情報を得る
//サーバーに依存する
//
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;
//ファイルの作成日、サイズを得る
//
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;
//ヘッダ情報を追加する
//
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;
インデントミスったので、再掲
//ヘッダ情報を追加する
//
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;
ヲワリ。 では本日も四露氏苦
>>350 >>351 これって同じ作者なのかな?
どちらも試したがメモリリーク起きてませんでした!
d( °w )
いー感じ♪
書記さん、monazilla.org(藁 のダウンロードの説明の所を こんな風に修正してくれると、わかりやすいかな。 > アップロードしてあるファイルをダウンロードする方法 > > Monazilla Studio をダウンロードする。 > 適当なフォルダで解凍する。 > index.html を開く。 > ダウンロードをクリック。 > 入ってよしボタンをクリック。 すると シリコンバレーオークランド通り/9028 monazilla が開く アップされたソースは[src]フォルダに入っているので [src]ボタンを押す > するとアップされたソースの一覧が出てくるのでダウソしたいファイル名の横のほ > うにある 表示 ってとこをクリックする。 > > 以上
全然ヵキコがない。! ウツダシノウ
>/* 書記さんは会社から 2チャンへの書き込みがなぜかできないのでロムってます、すんませんー */ そうですか。 仕事していないのは俺くらいですか。(´∀`)
>少佐 TWebBrowserで遅い問題は解決したでしょうか? もしかしたら文字列連結の時間が原因かもしれません。 ・・・外してたらごめんなさい。 BCBの場合、単純にAnsiStringを数百回以上連結すると、 その部分で異常に時間を食います。 std::stringでreserve()すると、(その部分は)嘘みたいに高速になります。 でも、実はAnsiStringでcapacityを増やす方法を知らないんですが。
モナーアイコンを作成してくれない?誰か。
あと、32x32のaviもキボーン。 monazilla.org公式っていうのがいいなあ。 いま、かちゅしゃのaviで試しているから、 なんか悲しくて切なくて生産性が下がっています(藁 アイコンデザイン探しにモナー板逝ったら 藁ってしまうので仕事中にはとても探せないや。
375 :
Dax :2001/02/21(水) 22:29
376 :
書記さん :2001/02/21(水) 23:40
>>369 修正しました!
ありがとうございます。確かにわかりにくかったですね。
ですのでさらに画像も入れてみました。
>>370 今日は一時アクセスできなかったです。>2ch
うちだけかな?
377 :
turbotypeD@モナぢら :2001/02/22(木) 00:03
>>375 おぉ。ぞくぞくと開発者が!
しかも別ユニットまで!
勢いでレス一覧までやってくださらぬか、(w
ってそれは贅沢かな。
別ユニット的アプローチはいずれ参考にさせていただきます。
モナプローラではすでにスレ一覧まではやってしまったしなあ。
次はWebBrowserを簡単に作れるクラス/ユニット実装予定(は未定)
かちゅ〜しゃの1タブごとに[戻る]ボタン機能がついた
イメージで作ってます。
378 :
turbotypeD@モナぢら :2001/02/22(木) 00:09
>>375 おぉ。ぞくぞくと開発者が!
しかもコンポ別ユニットまで!
勢いでレス一覧までやってくださらぬか、(w
ってそれは贅沢かな。
別ユニット的アプローチはいずれ参考にさせていただきます。
モナプローラではすでにスレ一覧まではやってしまったしなあ。
次はWebBrowserを簡単に作れるクラス/ユニット実装予定(は未定)
かちゅ〜しゃの1タブごとに[戻る]ボタン機能がついた
イメージで作ってます。
>>書記さんいつもありがとう
2重火器子スマソ
380 :
デフォルトの名無しさん :2001/02/22(木) 00:12
>>340 Content-Lengthを参照する以外に終端を知る方法は
なかったと思う。<Keep-Alive
381 :
フッサール少佐 :2001/02/22(木) 00:35
>>372 >TWebBrowserで遅い問題は解決したでしょうか?
全く解決するめどは立っていないが、別の方法を使うことにより
逃げることにした。
>もしかしたら文字列連結の時間が原因かもしれません。
JavaもStringの文字の連結は注意だな。ちなみにStringBufferを使う。
>でも、実はAnsiStringでcapacityを増やす方法を知らないんですが。
Delphiの場合は、SetLengthかな。
遅い原因はそれもあるのだが、innerHTMLを使っているということであろう。
Writeで追加書き込みしていけばそこそこ速いのだが、画面クリアの仕方が
分からんのだ。つーか、TWebBrowserとかCOMとかは素人だったり…。
下げるわけにもいかんのでage
上げるわけにもいかんのでsage
いわゆるタブブラウザやかちゅーしゃなどでは WebBrowser部分はWebBrowserのインスタンスを沢山作って いるのでしょうか?
385 :
デフォルトの名無しさん :2001/02/22(木) 13:11
386 :
デフォルトの名無しさん :2001/02/22(木) 13:12
かちゅーしゃは複数のブラウザインスタンスをつくってるようです。
を、一応レス閲覧コードが書けた。(アプしてないけど) 初めて動作させるけどどきどきするなあ。
あ、まだメソッドを呼ぶActionが無かった。あせるな>ジブン
さて、今日もコード公開
誰でも作れるけど、誰かが作っていたら楽な関数
////////////////////////////////////////////////////////////
{ DataTimeToFmt2ch
Fmt2chToDateTime
// 名前:turbo type
[email protected] (藁
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
聞いてアロエリーナ ちょっと言いにくいんだけど
聞いてアロエリーナ
ココカラノコードハ: 2ch形式の日付文字列"2001/02/09(金) 22:49"を
TDateTimeと相互変換する
コウシン日ワ: 2001/02/22
ホカニ逝ットクコトハ:なにもなし
聞いてくれてありがと アロエリーナ♪
\________ _______/
|/
∧_∧
Ψ (∀・ )
□ (∩∩ノ)
// ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ }
const DayOfWeekJP: array[1..7] of String = ('日','月','火','水','木','金','土');
function DateTimeToFmt2ch(DateTime: TDateTime): String;
var
Year, Month, Day: word;
Hour, Min, Sec, MSec: word;
begin
DecodeDate(DateTime, Year, Month, Day);
DecodeTime(DateTime, Hour, Min, Sec, MSec);
Result := IntToStr(Year) + '/' +
Format('%.2d', [Month]) + '/' +
Format('%.2d', [Day]) + '(' +
DayOfWeekJP[DayOfWeek(DateTime)] + ') ' +
Format('%.2d', [Hour]) + ':' +
Format('%.2d', [Min]);
end;
function Fmt2chToDateTime(Fmt2ch: String): TDateTime;
var
Year, Month, Day: word;
Hour, Min, Sec, MSec: word;
begin
try
Year := StrToInt(Copy(Fmt2ch, 1, 4));
Month := StrToInt(Copy(Fmt2ch, 6, 2));
Day := StrToInt(Copy(Fmt2ch, 9, 2));
Hour := StrToInt(Copy(Fmt2ch,16, 2));
Min := StrToInt(Copy(Fmt2ch,19, 2));
Sec := 0;
MSec:= 0;
Result := EncodeDate(Year, Month, Day)
+ EncodeTime(Hour, Min, Sec, MSec);
except
raise ENichError.Create('日付変換が正しくねえぞ鰓(゚Д゚)ゴルァ');
end;
end;
////////////////////////////////////////////////////////////
>>386 ども。
よし。レス内容データ読み込みだけは確認出来た。
あとはどのようにしてWebBrowserに読ませようか
ファイルに落としてからNavigateするのはわかるが
直接Documentに落とす方法はさっぱりわからない。
(次からはTWebBrower組み込むからD5専用な。)
誰かオシエレ(態度デカ!)
現在はモナヂラスレの内容を読むために
単に
http://piza.2ch.net/tech/dat/981726544.dat を読んでいるのだがこれでいいのか?
read.cgiには迷惑かけずに最新情報を読むことになってる?
AVIファイルの作り方おしえてくれい。
391 :
gikozilla :2001/02/22(木) 16:53
♪聞いてアロエリーナ ちょっと言いにくいんだけど
聞いてアロエリーナ
>>391 すごく使い勝手わるいよ。
聞いてくれてあーりがと アロエリーナ♪
\______ ___________/
. |/
(○) ∧_∧
ヾ|〃 (∀・ ,,,)∩゛
□. (∩∩ , ⌒つ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
395 :
turbo type D@もなヂ :2001/02/22(木) 18:36
396 :
Dax :2001/02/22(木) 22:21
>>388 ナイス!
汎用関数ライブラリつくりましょっか?
397 :
119 :2001/02/22(木) 22:48
type TNichDownloadEvent = procedure(Sender: TObject; Index1, Index2: Integer) of object; // Sender.Lines[Index1..Index2]をダウンロードした TNichDownloadableObject = class public property Url: String; proeprty Lines: TStrings; // TStringsで扱ってくれると楽チンなんだが... proeprty OnStartDownload: TNotifyEvent; property OnProgressDownload: TNotifyEvent; property OnFinishDownload: TNotifyEvent; end; TNichDownloadType = (dtAll, dtDiff); // 全て取得・差分のみ取得 // 抽象ダウンローダ TNichCustomDownloader = class protected FList: TObjectDeque; // TNichDownloadableObjectのインスタンスを保持 public property UseProxy: Boolean; property Proxy: String; // '0.0.0.0:8080'という形式が楽チン procedure StartDownload(Nich: TNichDownloadableObject; Whole: Boolean = False; // 全て取得(FALSEなら更新チェック&差分取得) Deferred: Boolean = False // 順番を後回しにする ); virtual; abstract; procedure CancelDownload(Url: String); proeprty OnStartDownload: TNotifyEvent; property OnProgressDownload: TNotifyEvent; property OnFinishDownload: TNotifyEvent; end; // ローカルキャッシュダウンローダ TNichCachedDownloader = class public property Size: Integer; // カレントキャッシュサイズ property MaxSize: Integer; // 最大キャッシュサイズ property Directory: String; // キャッシュディレクトリ // こればっかりはレジストリで設定すべき procedure Clean(LeftSizeMB: Integer; option...); // キャッシュをクリア procedure Write(nich: TNichDownloadableObject); end; // HTTPダウンローダ TNichHttpDownloader = class public end; // FTPダウンローダはいらないか... // 2chダウンローダ // やることはcache&httpからLines:TStringsへダウンロードするだけ。 // Linesの解析は委譲元(nich: TDownloadableObject)が行う。 // 開発初期段階はシングルスレッド版(StartDownloadを呼び、ダウンロード完了後に制御を戻す。 // 途中でApplication.ProcessMessagesを呼ぶかもしれない) // 差分取得は全て取得してしまう。 // 完成したら、順次マルチスレッド・差分取得を実装していく TNichDownloader = class protected cache: TNichCacheDownloader; http: TNichHttpDownloader; public procedure StartDownload(Nich: TNichDownloadableObject; Whole: Boolean; Deferred: Boolean); begin // cacheとhttpを組み合わせてダウンロード cache.StartDownload(Lines, Url, Whole, Deferred); // こっちはその場で復帰するはず http.StartDownload(Lines, Url, Whole, Deferred); // こっちはスレッドでダウンロードを開始するだけ // nichのイベントの発生のさせ方は一考の余地あり // ダウンロードが終わったらキャッシュする。 cache.Write(Nich); end; end;
例によって中身のないマルチスレッダブル(??)HTTP・キャッシュ 統合ダウンロードクラスを書いてみた。 HotZonuも良いがダウンロード・キャッシュ・プロクシ等の コード・設定があちこちに散らばるのは面倒なので、 データをTStringsかstreamに統一して、 ダウンローダを板・スレリストクラスから分離すべきだと思う。 あとModel, Viewも意識的に切り分けないとね。 なんていってると遅くて使い物にならなくなるかもしれないが...
399 :
フッサール少佐 :2001/02/22(木) 23:15
400 :
ヒロユキ@ギコナビ :2001/02/22(木) 23:29
>>398 >あとModel, Viewも意識的に切り分けないとね。
>なんていってると遅くて使い物にならなくなるかもしれないが...
結構、重要ですよね。
でも、ウィンドウズのTreeViewだとどうしてもTreeView内にデータが入るので
ここをどうするかが問題になりそうです。
せっかくモデルを作成しても、タコTreeViewのお陰で複雑になります。
TreeViewとモデルの間に一つ挟めばいいのかな?
VirtualTreeViewなんてモードがあればいいんだけど。
401 :
Dax :2001/02/22(木) 23:38
>>398 なるほど。
HotZonuもその形式に変更していきたいと思います。
なんか難しそだな。。。
402 :
Dax :2001/02/22(木) 23:43
>>400 TreeViewのDataにオブジェクトを入れるのはまだいいと思います。
ノードと板スレオブジェクトを関連付けるクラスがあっても
いいかもしれませんがなんか複雑になりそう、、
逆に板やすれのオブジェクトがノードを持っているのはちょっと好きくないです。
403 :
デフォルトの名無しさん :2001/02/22(木) 23:45
404 :
デフォルトの名無しさん :2001/02/23(金) 00:49
まえにこんなの作ったら、コードがかなり単純になった。 コードなくなっちゃったけど。 function SearchTreeNode(TreeView: TTreeView; Path: String): TTreeNode; // あれば'\foo\bar\baz'を検索して返す // なければ無理やり階層作って返す。 tn := GetTreeNode(TreeView1, '\foo\bar\baz');
405 :
デフォルトの名無しさん :2001/02/23(金) 09:54
そろそろ書き込みについても考えませうage
406 :
turbo type D@もなヂ :2001/02/23(金) 09:56
>>400 ヒロユキ
オレはTreeViewのTreeNode.Dataに
TNichBoardを入れてポインタでリンクしてるよ。
で、実際のTNichBoardの管理はTreeViewとは
独立している。
今の所は生成方法でTNichBoardを作るときに
TreeViewのItemも構成してしまってるから
ちょっと絡まってるけど分離は実に楽だよ。
TTreeViewをTListBoxに差し替えるたり
TNichSite
└TNichCategory
└TNichBoard
└TNichThread
└TNichRes
というデータ構造をしっかり保持しておいて
さらに
TTreeView
└TTreeNodes
└TTreeNode
└Dataプロパ=TNichBoard
こうしてるわけ。
407 :
turbo type D@もなヂ :2001/02/23(金) 09:58
>>402 Dax
TNichSiteにはプロパとして
使用するTTreeNodeをポインタとして代入しておくと
TNichBoard側からもTTreeViewを参照できるよ
TNichBoard.OwnerCategory.OwnerSite.TreeView=
実際に画面に存在するTreeViewという事になる。
Daxには仏に説法か。(藁
TNichBoardがTNichNodeを保持するのはオレも好きでない。
if TTreeView.Items[i].Data=Self then
で検索してもいいかもね。
>>398 =119
勉強させてもらいます。
ダウンロードの構造はまだ考えていなかった。
一般的なやり方ってのはどういうものなのだろうか....
マルチスレやサブンダウソも
ダウンロードクラス差し替えで
408 :
turbo type D@もなヂ :2001/02/23(金) 10:02
テイセ マルチスレ→マルチスレッド対応 ダウンロードクラスだけ差し替えたら動作するような 機能分けが欲しい。 TDataModule上にダウンロード機能を構成しておくと IndyやHTTPCLIに対応したときも 差し替えが実にらくだと思うよ。
409 :
turbo type D@もなヂ :2001/02/23(金) 10:09
>>405 >そろそろ書き込みについても考えませうage
ダネ。ギコナビスレ、2chブラウザスレ、かちゅしゃスレで
話にあがっていたかも。
参考レス教えてクレソ
オレもAVI作ったんだけど(ヘチョいけどもナー)
アニメGIF作る方法がわかんね(T∀T)
教えてクレクレ厨房ですのでオシエテクラサっィィィィィィィィィィィィィィィィィ
>>403 裏になると顔が変わったらインパクあっていいかモナー
410 :
デフォルトの名無しさん :2001/02/23(金) 15:34
>>409 AVI,私はMacromediaのExtreme3dってのを使いました。
あ、フリーのツールじゃないです。
411 :
turbo type D@monazilla :2001/02/23(金) 15:56
>>410 そうですか。フリーでアニメGIFはやはりないですかね。
>>402 Dax,
ホットゾヌでレス一覧を取得できるようには出来ないでしょうか?
412 :
デフォルトの名無しさん :2001/02/23(金) 17:18
413 :
turbo type D@monazilla :2001/02/23(金) 18:32
元あるGIFを組み合わせて、アニメGIFをつくるのはライセンスの問題に引っかからないはずだから、 そういうソフトを見つけてくるか、もしくは作るか…。
メールテスト
>>414 ,TGifImageで作れるのかな?
416 :
turbo type D@monazilla :2001/02/23(金) 22:02
よっしゃ。 TWebBrowserでレス一覧まで見れるようになった!(遅いけど) 今日中にアプします。
417 :
ヒロユキ@ギコナビ :2001/02/23(金) 23:57
>>406 ギコナビもDataに入れてます。
ちなみに、
TBBS2ch (extends TList)
└TCategory (extends TList)
└TBoard (extends TList)
└TThreadItem (extends TObject)
な感じなのですが、モナプロのほうが綺麗なクラス群ですなぁ。
あと、書込みの注意点。
書き込みするときには、クッキーを送ってやる。
書き込み文字列はURLEncodingする。(HTTPAppユニットのHTTPEncodeで可能)
具体的には、以下のようになると思います。
FROMとか大文字小文字を区別しているようなので注意。
s := 'submit=' + HttpEncode('書き込む') + '&
+ 'FROM=' + HttpEncode('ヒロユキ@ギコナビ') + '&'
+ 'mail=' + HttpEncode('sage') + '&'
+ 'MESSAGE=' + HttpEncode('書き込みたい文字列') + '&'
+ 'bbs=' + 'tech' + '&'
+ 'key=' + スレ番号(ex. 981726544) + '&'
+ 'time=' + 時刻(注);
な感じを送ります。
僕の場合、時刻は以下のメソッドで取得しています。
//2ch日付取得(1970年からの秒数-9時間)
//現在の時刻(now)を渡してください
function TGikoSys.Get2chDate(aDate: TDateTime): string;
var
d1: TDateTime;
d2: TDateTime;
begin
d1 := EncodeDate(1970, 1, 1);
d2 := aDate - EncodeTime(9, 0, 0, 0);
Result := FloatToStr(Trunc((d2 - d1) * 24 * 60 * 60));
end;
418 :
turbo type D@はみ出しプログラマ酔っ払い :2001/02/24(土) 02:50
419 :
turbo type D@はみ出しプログラマ酔っ払い :2001/02/24(土) 04:11
モナプローラ、アプしたよ。 うごくかな。 TWebBrowser使ってるからD5限定ね。 あと、次からは多分パッケージもインストールするようにします。 コンポ使わないとコーディングが面倒なので。
あ、レス一覧を参照できるようになりました。 実に使いにくい2chビューワーとしてなら使えるはずです。(w
421 :
デフォルトの名無しさん :2001/02/24(土) 11:55
>>419 Browser.pas と MemCheck(例のメモリリークチェッカ?)
ってのが無いってエラーが出るーーー
あ、違った。 単に MemCheckが無いってエラーでした。
プロジェクトソースの該当個所をコメントアウトしてくれ
>>350 >>351 を参考にね.
>>書記さん、メモリリークの解決方法へのリンク張って
頂くとうれしいかも。
ところで、モナヂラ ドット”オルグ”って読み方あってる?
425 :
デフォルトの名無しさん :2001/02/24(土) 23:17
AVIでアニメーションさせるんなら 0..100%で進捗状況を表すようにしない?
426 :
デフォルトの名無しさん :2001/02/25(日) 00:01
>>417 質問。
リクエストメソッドはGETでも大丈夫なの?
この2chはPOSTで送っているみたいだけど。。
427 :
フッサール少佐 :2001/02/25(日) 00:19
>>426 datファイルやsubject.txtならGETでOK。
CGIを動かすならPOST。
428 :
フッサール少佐 :2001/02/25(日) 03:16
>>427 ああ、スマソ。一体何を書いていたんだ。無かったことにしてくれ。
>>425 余り関係ないが、AdobePremireの待機カーソル(砂時計みたいなの)妙に腹立たないか?
430 :
turbotypeD@モナぢら :2001/02/25(日) 15:38
>>425 それはね。WinInetでは難しいのよ。
・・・そうでもないって話もあるな。
WinInetでの%実装…思い浮かんだぞっと。
差分ダウソと絡めて実装したいね。
431 :
turbo type D :2001/02/26(月) 10:33
なんか下がりまくってるし....
432 :
turbo type D :2001/02/26(月) 16:03
Delphiの弱点というか、 コンポーネントを継承して そのコンポーネントの生成などを考えずに IDE上でコーディングしようとすると 非常に面倒ですね。 面倒すぎるので、動的生成させることにしました。 だからパッケ−ジ化も特に必要なし。
433 :
デフォルトの名無しさん :2001/02/26(月) 16:32
>>432 同意。
独自のコンポーネント作ってアプリに組み込んでも、
他人にインストールを強要するのがイヤでいつも動的生成にしちまう。
そのかわり動的生成だと、配置やプロパティ設定がウザイ。
このへん、どうにかにかならんもんかねぇ。
434 :
turbo type D :2001/02/26(月) 16:48
>>433 、を、やっぱりそう思いますか。
IDEの設定がコーディングレベルに落ちて
プロパ設定もソースで見えるように
VB.NET/JAVAでは改善していたと思う。
あまりしらないけど。
Delpヒもさっさと改善望む。
さて
動的生成タイミングなんですが
FormCreateでやればいいのでしょうか?
あと、CreateParentedってのはなんですか?
VCLじゃないWindowにコントロールを載せる為の
特殊なCreateと考えていい?
435 :
turbo type D :2001/02/26(月) 17:37
FormCreateで問題ないことがわかった。
あと、TWebBrowserの動的生成は特殊なんだね。
var Browser : TWebBrowser ;
begin
Browser := TWebBrowser.Create(Self);
Browser.Align := alClient ;
TOleControl(Browser).Parent := Self ;
Browser.HandleNeeded ;
http://www.users.gr.jp/ml/archive/delphi/25250.asp ここをみた。
ギコナビもオプソになったし
おもしろいね。
436 :
Dax :2001/02/26(月) 18:27
437 :
turbo type D :2001/02/26(月) 19:24
ホットゾヌを組み込もうかと調べていたんだけど アスキアトすごいね。 カテゴリとボードについてそれぞれ TCollectionとTCollectionItemがあるんすね。 このままスレとレスについても 同じようなコードで実装するのでしょうか?
438 :
Dax :2001/02/26(月) 21:09
>>437 いや、スレ/レス取得はダウンローダと解析処理を分けようと思います。
ですので全然違うコードになると思います。
つーか板一覧も変わります。スマソ..
やっぱコレクションは不便ですかねー? 次回はギコナビみたいな TList 継承にしよー。
ホットゾヌのソース見て、飲んでたお茶ふきだしそうになった…。アブねぇ…。
441 :
デフォルトの名無しさん :2001/02/26(月) 22:19
>>440 やっぱ AA 張りきりすぎ?
それともロジックが変だったってこと!?
443 :
フッサール少佐 :2001/02/27(火) 00:22
writeの正しい使い方がようやく分かった。 document.open('text/html', 'replace'); これが必要だったらしい。待て、次号。
444 :
119 :2001/02/27(火) 00:28
Delphi以外の言語(特にスクリプト系)で参入しやすいように 一連のクラス郡をオートメーションサーバにしちゃうってのはどう? 用途としては、とりあえず以下のものが考えられる。 ・コマンドライン巡回ツール ・WebBrowser表示用のdat->htmlフィルタ #2ch標準より読みやすい表示はいくらでもありそうだね。 #これはオートメーションとは関係ないけど。 ・キャッシュクリーンアップ ・CUI,GUIフロントエンド(DelphiとVBの夢の共演が実現か?:-)。
445 :
デフォルトの名無しさん :2001/02/27(火) 02:19
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ 聞いてアロエリーナ ちょっと言いにくいんだけど 聞いてアロエリーナ >・GUIフロントエンド 特定のスレを定期的にチェックして新着の内容を 吹き出しで表示する常駐ツールなんてどうよ? 聞いてくれてありがと アロエリーナ♪ \________ _______/ |/ ∧_∧ Ψ (∀・ ) □ (∩∩ノ) // ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ }
コメントのAAにびっくらこいただけだよ。その調子で頼むよ(藁
447 :
Dax :2001/02/27(火) 08:27
>>444 ActiveXコントロールを作ろうかと思ってたんですが
オートメーションサーバーの方が小回りききますね。
>>446 クラスとクラスの間に貼ってあるリアルゾヌ(勝手に命名)の AA がお気に入りです。
448 :
turbo type D :2001/02/27(火) 10:03
>>443 少佐・まってます。('w')ゞ
>>Dax
コレクショとコレアイテムは1階層だけでの実装が自然だと思う。
だから2chのようなデータ構造を保持するには
少々不自然かな。
ソースは綺麗ですよ。
今日は気合入れていくぜ。
オフライン&WebBrowser動的生成は実装できた。
読み込み中に
Appli.ProcessMessageしてると
予想していないポインタのズレから
>>441 動画ないす!
モナプロラではUI上から動画を切り替えられるようにしておこうっと。
449 :
turbo type D :2001/02/27(火) 11:53
ActiveXコントロール/コントロールコンテナから WordやExcelのドキュメントの書き込み禁止/許可を させるにはどうしたよいのでしょうか?
スレまちがえました。すいません。
452 :
turbo type D :2001/02/27(火) 18:51
うまくいかん!、ぐう(x∀x)
453 :
turbo type D :2001/02/27(火) 19:04
Browserの進むと戻るって どのように実装されてるのかな? GoBackメソッドとかあるけど。 詳説キボーン あとWebBrowserに関するテクニックを 知っている人は沢山教えてくださいな。
454 :
turbotypeD@モナぢら :2001/02/27(火) 22:09
かちゅーしゃのように WebBroweserで開い後に自動的にスクロールする方法がわかんない。
455 :
デフォルトの名無しさん :2001/02/27(火) 22:12
456 :
Dax :2001/02/27(火) 22:12
>>454 かちゅーしゃでHTMLソースを見るとレスごとに
アンカーが設定してあります。
Navigate時にアンカー指定で表示しているんだと思います。
457 :
turbotypeD@モナぢら :2001/02/27(火) 22:36
そうか!あったまいい!
459 :
Dax :2001/02/27(火) 22:51
>>458 おお!なるほど、確かに Navigateだとぎゅい〜んって動いちゃうよね。
なんかスレずいぶん落ちてるんだけど みんな疲れてるの?
みんな会社でまじめに働いてるからです(藁
そうか! まじめに働いていないのは俺だけか!(藁 じゃあ、今日も不真面目にGo!
不真面目なのはオレ一人なので気にせずカキコ
あと、
>>449 の問題とか教えてよ。
今までデータ構造として
TNichSite
├TNichBoard ─┐
└TNichCategory │
└TNichBoard─┘
└TNichThread
└TNichResponse
としてTList保持して一つのツリーとして考えてきて
おや(Owner?)を破棄すると同時にすべての子を
破棄するようなコードを書いていたけど
どうやら詰まってきたので再考しました。
構造はこのままだけど
ボード一覧表示部分
TNichSite
├TNichCategory
│└TNichBoard─┐
└TNichBoard ←┘
↓TNichBoardをAssignしてコピー
スレ一覧表示部分
TNichBoard
└TNichThread
↓TNichThreadをAssignしてコピー
レス一覧表示部分
TNichThread
└TNichResponse
にします。
こうしないとボード一覧表示を更新した後に
スレ表示やレス表示部分と整合性が無いために
コードが非常にやりずらかった。
という事でよろしく。
わぉ(´∀`)
オレもアプじゃあー!
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/monaplorer010228.lzh 更に使い勝手が悪くなったきがしまフ
たぶんD5限定さ。
・タブで複数スレが見れる
(けどロード中にタブ切り替えするとやばいよ落ちるよ
しかもとても使いにくいよ)
・内部データ構造を見直した
ちゃっかりTList継承になってるもんね。
きっと今後のコーディングが楽になるハズハズハズハズハズハズハズハズハズ
キノセイ キノセイ キノセイ キノセイ キノセイ キノセイ キノセイ キノセイ キノセイ キノセイ キノセイ キノセイ キノセイ
・AVIファイルをaviフォルダに入れる事でグルグルアニメの選択可能
こんなおまけ機能後回しにしろや(゚Д゚)ゴルァ
まだまだ先は(カチュに追いつくには)遠い!
467 :
turbo type D@モナヂラドットオルグ(ワラ :2001/02/28(水) 18:58
GoBackとGoForword機能 のEnabledはどうやって取得するのでしょう? オスエテクダサイ
468 :
turbo type D@モナヂラドットオルグ(ワラ :2001/02/28(水) 19:02
モナプロラ今後の予定 TWebBrowser部分 スクロール機能をつける タブを閉じる関数をつける データ構造 T2チャンスレッドのメンバーに スクロールバー位置 を追加 ダウソ部分 WinInetによるファイルサイズ取得関数作成 ファイルサイズと比較して 差分ダウソの実現するようにする 全体 ちょっとくらい使い勝手を意識しろツコトデ UIの改善 →PopupMenuで読み込むのをやめよう。 →現在読み込んでいる板とスレの表示 データのIniFile保存
469 :
デフォルトの名無しさん :2001/02/28(水) 19:12
>>466 TList クラスを継承は出来るだけやめた方が良いよ。
Delete メソッドや Clear メソッドが公開されているから
バグを作る可能性が大きくなります。
470 :
turbo type D@モナヂラドットオルグ(ワラ :2001/02/28(水) 21:00
あらーーー。 せっかくTList継承にしてみたのになあ。 まあ、Has ア に戻すのもたいした手間じゃないけどさ。 そしたら TNichListを内部で保持しておいたらいいんでしょうか?
471 :
書記さん :2001/02/28(水) 22:26
モナプロ〜ラ〜のページ更新しましたー。 ワタクシもまじめに働いてないですよ。
472 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/01(木) 01:07
あらま、本家とかついてる。うれしいでございます。 ギコナビもすぐクローン化されるんでしょうね。 みなさんマターリガンバリマソ
本家のソースをみて感動(´ー`) WebBrowserのParentの設定方法がわからなかったので Frameを使ってたのが恥ずかしYo もうちょっとガンバッテ勉強します。
474 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/01(木) 10:12
エヘ(w
>>435 を見ておくれ。
Browser.HandleNeededが何で必要なのかは全然知らない(藁
BCBでのやり方は某所で載っているね。
475 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/01(木) 14:44
>>467 のやり方がわかった。
type
TNichBrowser = class(TWebBrowser)
private
FOnCommandStateChange: TWebBrowserCommandStateChange;
FGoBackEnabled: Boolean;
FGoForwardEnabled: Boolean;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure CommandStateChange(Sender: TObject; Command: Integer; Enable: WordBool);
property OnCommandStateChange: TWebBrowserCommandStateChange
read FOnCommandStateChange write FOnCommandStateChange;
property GoBackEnabled: Boolean read FGoBackEnabled;
property GoForwardEnabled: Boolean read FGoForwardEnabled;
published
end;
---------------------
constructor TNichBrowser.Create(AOwner: TComponent);
begin
inherited;
inherited OnCommandStateChange := CommandStateChange;
end;
procedure TNichBrowser.CommandStateChange(Sender: TObject;
Command: Integer; Enable: WordBool);
begin
case Command of
// GoForwardコマンドの実行許可
CSC_NAVIGATEFORWARD :
begin
FGoForwardEnabled := Enable;
end;
//GoBackコマンドの実行許可
CSC_NAVIGATEBACK :
begin
FGoBackEnabled := Enable;
end
else
end;
if Assigned(FOnCommandStateChange) then
FOnCommandStateChange(Sender, Command, Enable);
end;
これでGoBackEnabled/GoForwardEnabledプロパティが
実装できる。
ところで
UIWebBrowserのヘルプに
>TWebBrowserを継承すると統合デバッガで不具合が生じます。
とあるが、普通にTWebBrowserを継承して使っているが
特に不具合は出ていない。デバッガをフルに使っていないからかな?
動的生成しているからかも。
勉強になります。
477 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/01(木) 18:14
かちゅ〜しゃの作者さんも来てくれないかなあ。 ソース公開とかどうでもいいから。
むこうのかちゅしゃスレ妙に荒れてるからなあ。 直リンして、作者さんといっしょに、厨房がついてこなけりゃいいけど。
479 :
書記さん :2001/03/01(木) 22:16
かちゅーしゃスレでは、次回のバージョンアップが済んだら 参加したいな〜って感じの書き込みがあったよね。 ソースの公開はしなくても、ぜひ参加してほしいですよね。
480 :
turbotypeD@モナぢら :2001/03/01(木) 23:01
そうそう。 かちゅーしゃってば分割ダウソと直読みをやってるよね。 最終的に表示するのはモナプロラの方がちょっぴり遅いんだけど かちゅしゃは読み込み時に途中から表示していってたんで 驚いた。 結構地道にコーディングしてたんろなー。
481 :
ふみもたたけし as 119 :2001/03/02(金) 01:46
おおお、かちょええ!!
483 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/02(金) 09:53
すげー。かっちょよすぎ。 ツールバーの画像ってどこから集めているんですか? すごく標準っぽい画像 オレの使ってるBugBrowserってのにも 似たボタン画像が使われているのだが。
484 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/02(金) 09:56
ダウソ部分は汎用的にまとめるのは難しいかもしれないけど 何をどうコーディングすればいいのかはわかっているので データ構造などを決めてくれれば実装は 手伝いますぜ
485 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/02(金) 16:28
ダウソのこと考えてると マルチスレッドでどうしたらいいのかとか頭痛くなってきたよ。
486 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/02(金) 18:53
487 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/02(金) 18:57
かちゅのように差分ダウソはしていないから遅いのは遅いですね。 欝だ............
はじめまして。 やっぱりプログラム板はいいなあ。 全部読めてないので、とりあえず今は足跡だけでお許しを。
489 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/03(土) 01:01
こんにちは、プログラム板には久しぶりですかね。 よろしく、教えてくださいな。
490 :
ふみもたたけし :2001/03/03(土) 02:31
連番移動機能(index01.htm->index02.htm)というのを思いついた。 むちゃくちゃ便利であるような気もしたけど、エロサイトくらいにしか使えないか。 >ツールバーの画像ってどこから集めているんですか? 標準のボタンはVisual Studio Enterpriseに付いてる。 それ以外はIE, Office, DelphiIDEからキャプチャ。 >ダウソ部分は汎用的にまとめるのは難しいかもしれないけど 難しいの? Board2ch見る限りきれいにUIと分離してあるように思えるけど。 ダウンロード・キャッシュ部分をホットゾヌ使うように 改造しちゃおうかな。 >マルチスレッドでどうしたらいいのかとか頭痛くなってきたよ。 よく考えたらマルチスレッドなんていらない気がしてきた。 サーバに負荷かけすぎるからね。 一括更新チェックができればそれで十分。
491 :
デフォルトの名無しさん :2001/03/03(土) 06:47
かちゅしゃ、作者ひきこみage?
492 :
ヒロユキ@ギコナビ :2001/03/03(土) 13:01
DelphiのTWebBrowserって初期化してくれなくて、コピペがうまく いかないので、一番下(end.の前)にでも以下の行を追加しよう。 usesにActiveXを忘れずに。 initialization &nbsp;&nbsp;OleInitialize(nil); finalization &nbsp;&nbsp;OleUninitialize;
493 :
ヒロユキ@ギコナビ :2001/03/03(土) 13:05
>>490 VS.NETのBata版入れたけど、16色の画像しかなかった。
やっぱ、リソースから抜き出すのが手軽なのかな(怒られる?)
494 :
デフォルトの名無しさん :2001/03/03(土) 15:20
495 :
ヒロユキ@ギコナビ :2001/03/03(土) 18:38
>>449 >なぜかTAnimeでは開けないの
解決済みかもしれないけど。
アニメコントロールは、非圧縮のAVIじゃないとダメだったとおもう。
496 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/03(土) 19:12
どもども。
>>492 ヒロユキ氏
それは何処に書けばいいのですか?
497 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/03(土) 19:12
>>495 解決してないよ。
非圧縮のAVIに変換する方法がわからないもの。
498 :
ヒロユキ@ギコナビ :2001/03/03(土) 19:32
499 :
ヒロユキ@ギコナビ :2001/03/03(土) 19:35
>>496 あっ、どっかのメソッドに書くのではないです。
メインフォームのユニットの一番下の「end.」の直前に書けばいいと思います。
500 :
フッサール少佐 :2001/03/03(土) 23:05
501 :
デフォルトの名無しさん :2001/03/04(日) 17:58
皆さんコード補完にどんなものを登録していますか? 便利そうなのがあったら教えてください。 僕はとりあえずこんなのしかありませんが... [begin | begin/end] begin | end; [unit | unitの新規作成] unit |; interface uses Windows, Classes, SysUtils; implementation end.
スレ違い。ごめんなさい。 お詫びAAのコメントをまとめてみました [aa_unit_header | ユニットヘッダ の書き方] (* // ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ // (´∀`)< |のソースだモナー // ( ) \________________________ // | | | // (__)_) 履歴 //*) [aa_func_header | 関数ヘッダの書き方/アロエリーナ風] //////////////////////////////////////////////////////////// {// 名前:| / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ 聞いてアロエリーナ ちょっと言いにくいんだけど 聞いてアロエリーナ ココカラノコードハ: クワシイセツメイハ: インスウハ: コウシン日ワ: 2001/00/00 ホカニ逝ットクコトハ ナシ 聞いてくれてありがと アロエリーナ♪ \________________/ / ∧_∧ Ψ (∀・ ) □ (∩∩ノ) // ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ } [aa_func_header_mona|関数ヘッダの書き方/モナー風] // // ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ // (´∀`)< | // ( ) \________________________ // | | | // (__)_) //
>>502 最高にお節介だが、引数はインスウではなくヒキスウと呼ぶんでは。
なんでも隠語の2ちゃんは♪いつでもいいネタさがしてる♪
506 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/05(月) 10:28
眠い。
バイナリも置いてくれよん。 Delphi持ってないよん。
508 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/05(月) 11:37
どなたかEZIPやUPXのexe圧縮(と呼ぶのか?) かけておいてくださらないでしょうか。
509 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/05(月) 12:48
>>498 だって、圧縮AVIをBMPに展開する方法がそもそもわからない。
....手作業でキャプチャするのはいやだよ。つらいよ。なくよ。
510 :
デフォルトの名無しさん :2001/03/05(月) 13:17
>>509 AviUtlあたりで、AVIを読み込んで、書き出すときに無圧縮にすれば
良いと思うけど。
AVI って IrfanView でバラせませんでしたっけか。>509
513 :
デフォルトの名無しさん :2001/03/05(月) 21:14
514 :
書記さん :2001/03/05(月) 22:54
515 :
フッサール少佐 :2001/03/05(月) 23:38
516 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/06(火) 09:39
つか、モナプロラの方も ユーザーが使うレベルの完成度に達してないよ(藁 そのあたりは今の所許容してくださいモナー
517 :
Dax :2001/03/06(火) 10:36
バンバンパクってくらさい ところで別スレのDelphiLifeゲムを アプしたいのですが よい2ch利用可能アプ板しりませんか? monazilla.orgにアプするのも筋違いだし アヤシそうな所にアプしても悪いし。
519 :
Dax :2001/03/06(火) 11:41
520 :
デフォルトの名無しさん :2001/03/06(火) 11:58
521 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/06(火) 17:57
>>520 サンクス。
今日は各ペインを表示非表示出来るようにしたり
新しいタブで開くを作ったり
ageレスのカウントを表示してみたりしたけど
小変更なのでアプは見送り…
根本的(とは大げさなんだけど)に
ダウンロードクラスを作らなければ
ダウソ中のキャンセル処理やリロード処理がやりにくい事に
気が付きました。
ボド一覧(ひとつ)・スレ一覧(ひとつ)・レス一覧(複数)
についてマルチスレッドなダウソクラスを作ろうかな。
オレにそんなスキルがあるのかどうかドキドキしてますが
力゙ ソ 八゙ ッ 〒 ミ マ フ、
turbo type D さんって何歳?
知ってどうする?
524 :
ふみもたたけし :2001/03/06(火) 23:12
>517
今日の思いつき@いいかげん。
type
TDownloadableObject=class
// メモリの効率化・コードの簡略化のためにUrlを二つに分けたほうがよい。
// obj.BaseUrl := '
http://foo/bar/baz/ '; // この文字列は複数のインスタンスで使いまわされるはず
// // obj.FileName := 'dat/hoge.dat' // この部分だけインスタンス毎に異なる
// obj.FileName := '../index2.htm' // これもありうる
// obj.Url := '
http://foo/bar/baz/dat/hoge.dat '; // 分けたくなければ
private
function GetUrl: String;
begin
Result := BaseUrl + FileName;
end;
public
property Url: String read GetUrl write SetUrl;
property BaseUrl: String read FBaseUrl write FBaseUrl;
property FileName: String read FFileName write FFileName;
// OnStartDownload, OnEndDownloadはイベントよりvirtualメソッドのほうが適切。
// downloader<->TDownloadableObject(しかし長いな)間の通信にはイベントは適さない
// downloadable<->アプリ間の通信にイベントを使うべき
protected
procedure StartDownload; virtual;
procedure EndDownload; virtual;
// FLines[Index1..Index2]を差分ダウンロード
procedure Download(Sender: TObject; Index1, Index2: Integer);
// Downloaderではなくdownloadableが主体になるべきか?。
// ダウンロードのタイミングをdownloadableに制御させるとこんなことができるかも
// Memo1.Lies.Text(FormatDat(NichNet['PC等']['monazilla'].Lines));
public
property Downloaded; // 既にダウンロード済み?
property Downloader;
procedure Download;
end;
TDownloader.CreateDownloadableObjectの意図がわからない。
d := Downloader.CreateDownloadableObject;
d.OnXXX := YYY;
Downloader.Download(d)
Boards.Assign(d) // 一覧生成
のようにするってこと?
type
TBoards = class(TDownloadableObject)
protected
procedure EndDownload; override;
var
title, url, category: String;
begin
html_parser.lines.assign(lines);
while html_parser.getboardinfo(title, url, category) do
items.add(category, title, url);
if(Assigned(OnDownload))
OnDownload(Self); // アプリへ通知
end;
end;
の方がシンプル。継承使うとまずいのかな?
525 :
デフォルトの名無しさん :2001/03/07(水) 00:17
とりあえず2ちゃんねるの総通信時間、総ダウンロード文字数、 総書き込み回数・文字数をバージョン情報orスプラッシュで ユーザーに見せつける機能は必須でしょう(藁
526 :
デフォルトの名無しさん :2001/03/07(水) 01:29
いくつか聞かれるとは...何の意図があるのだろう。 なんか怖いよ。 もしかして 「精神年齢低そー」とか思われてる?(TДT)
528 :
デフォルトの名無しさん :2001/03/07(水) 14:46
>>527 太った男性は、好きですか?
とか聞かれるよりマシ(;´Д`)
529 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/07(水) 14:55
で、実際のところ何歳?
531 :
デフォルトの名無しさん :2001/03/07(水) 15:55
わーい、バイナリアップされてるー。 これで参加できるぞー。 使うだけだけどー。
532 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/07(水) 16:08
>>530 何歳がいいですか?
この際75歳って事にでもしましょうか。(藁
75歳じゃチンコ萎える感覚もわからんだろうな。 いや、そんな話どうでもいいよ。全く! それよりダウンロードのやり方について考えてくれない? 全然思い浮かばない。 一般的なFTPソフトってどうやってダウソして 途中キャンセルとか実装してんだ? 簡単に概念だけ説明してくれる人キボンヨ ダウンロードアイテムを作成して それをリスト管理しているのかな。 あと、 太った男性は嫌いです。 オパイの大きい女性は好きです。 パイパイの小こい女性も好きです。 ・・・・・・・・・・・・・・・・・・・・・・・なーに言ってんだか。
534 :
デフォルトの名無しさん :2001/03/07(水) 18:45
>>533 >一般的なFTPソフトってどうやってダウソして
>途中キャンセルとか実装してんだ?
HTTPにしろ、FTPにしろ、最終的にはsocketのreadになるはず。
そのsocketに対してタイムアウト付きでselectして、読み込み可能だった
ら(IPのバッファにデータが届いた)ら1バイト読み込む。タイムアウト
したらそのまま。そして、キャンセルフラグ(GUIのボタンが押されたら立てる)
が立ってるか、最後まで読み込んだら終了。
当然だが、GUIのメッセージ処理スレッドとダウンロードスレッドは別。
タイムアウトを1秒にすれば、1秒単位でキャンセルできる(キャンセル
ボタンを押した後、最大1秒待てばキャンセルされる)。
うまく説明できてないと思うけど、だいたいこんな感じ。
535 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/07(水) 19:20
>当然だが、GUIのメッセージ処理スレッドとダウンロードスレッドは別。 この概念が頭になかったから すごい頭がいたくなってきたよ。 でも何とかなるかも。
536 :
デフォルトの名無しさん :2001/03/07(水) 20:14
スレッドは面倒だぞ。 データの整合性が乱れないように気をつけないと。
537 :
Dax :2001/03/07(水) 22:08
>524 れびゅーThanx TDownloader.CreateDownloadableObject は意味無しでした。 あと、スレッド系の処理の一部がテスト中のままでした。 DownloadableObjectを誤解してたかも。 わたしはこう考えてました。 これは UI アプリケーションのコード。 proc Button1Click; begin DownloadableObject.URL := '板一覧のURL'; Downloader.StartDownload ( DownloadableObject ); end; proc OnEndDownload; begin Board.Parse( TDownloadableObject(Sender).Lines.Text ); ツリーなどにボード一覧をつくる処理 end; んー、なんかイケてないですねー、 やっぱり板クラスなどは TDownloadableObject継承がスマートですね。 それから処理中断をどうやって実装しようか悩んでます。
538 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/08(木) 11:13
>>536 うーん、そうだよね。
データの整合性という点では
スレ一覧でTNichBoardという1データに
リスト形式でTNichThreadデータを複数所有させていて
実際にブラウザで見る段階で新しいTNichThreadにAssignして
コピーしてから見るようにしている。
更に
昨日実装したんだけど
ブラウザの履歴データもTNichThreadをAssignでコピーして
保持しているんだ。
なぜそんな事をしているかというとスレ一覧が更新されたとき
コピー元のTNichThreadが破棄されてしまうから
ポインタで参照しておくわけにいかないの。
メモリ効率は悪いよなあ...メモリ食いが致命的にならなきゃいいけど。
その程度のメモリ使用はOKかなと考えてる。
Dax氏の言うように中断処理も難しいぜ。
539 :
デフォルトの名無しさん :2001/03/08(木) 15:10
>>538 スレデータも板データもリファレンスカウンタで管理すれば?
540 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/08(木) 16:48
>>539 それ知らない。どうやるの?
Max関数って使ってよい?
541 :
デフォルトの名無しさん :2001/03/08(木) 16:55
542 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/08(木) 17:05
書記さん、WinInetの続きです。
追加でpage9.htmlとpage14のものお願いします。
元ページのリンク先が飛び飛びなのは明らかに必要の無い
Tipsは無視してるから。
page9.htmlなんかも必要ないっつたら必要ないよね。
page10.htmlは不必要
page11.html/page13.html/page16.hemlは
monazillaには必要ないのでパスしてます。
page12.html/page15.htmlはいずれ必要
だれか書いてくれんかい?
//
http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page9.html //より移植
//プロキシサーバーを使用する。
hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_PROXY, 'proxy:8080', nil, 0 );
//プロキシサーバーを使用するがローカルアドレスには使用しない
hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_PROXY, 'proxy:8080', '<local>', 0 );
-----------------------------------------------------------------------
//読み取りポイントを設定する
//
http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page14.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
begin
InternetSetFilePointer( hService, 100, nil, FILE_BEGIN, 0);
//↑最初のものにここが増えているだけ 100バイト目以降を読んでいます
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
end;
InternetCloseHandle( hService );
end;
InternetCloseHandle( hSession );
end;
543 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/08(木) 17:31
テスト
スマソ差分ダウソテスト
545 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/08(木) 17:38
>>540 -541
Integerだけでいいので
よろしくたのみま
>>542 の差分ダウソ全然スピードがでなくてダメダメだ!
546 :
デフォルトの名無しさん :2001/03/08(木) 17:57
>>540 リファレンスカウンタ
TNichThreadやTNichBoardに自分が何回参照されてるかのカウンタ
をつけておき、Assign(←Delphiをまったく知らないが文脈からDeepCopy
のことと推測した)するんじゃなくて、カウンタを1増やす。
で、オブジェクトが不要になったら破棄するんじゃなくて、カウンタを1減らす。
カウンタが0になったら、参照されてないってことだからオブジェクトに自殺させる。
Pascalにもポインタはあったと思うのでたぶんできると思う。
547 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/08(木) 17:57
>>542 サンクスコ
書記さん更新はやすぎだよ(藁
548 :
turbo type D@モナヂラドットオルグ(ワラ :2001/03/08(木) 18:05
>>546 はーー、そんな方法があるんだ!かしこいなー
誰が考えたんだ?
俺が知らんだけ?常識?
Assignはメンバーとか全部のコピーです。から
DeepCopyと同じかな。あまりしりませんが、
簡単なサンプルキボン.C++でもいいよぉ
どこかのwebペジに載ってないでせうか?
549 :
デフォルトの名無しさん :2001/03/08(木) 18:54
>>548 VCLのソース参照(藁
グラフィックス系のオブジェクトは、参照カウンタもってて、
Assignしてもその時はコピーされなかったはず。
550 :
デフォルトの名無しさん :2001/03/08(木) 19:09
551 :
デフォルトの名無しさん :2001/03/08(木) 20:29
>538 TNichObjectのインスタンスの個数・寿命は フォーム上のコンポーネントに「完全に」一致しているから、 TComponent.Tagがインスタンスの生成・廃棄の責任を持つようにしたら いいんじゃない? TreeView1.Tag = LongInt(TNichBoards.Create); TNichBoards(TreeView1.Tag).Download; とかね。
552 :
turbotypeD@モナぢら :2001/03/09(金) 01:04
>>550 サンクス
自分で参加してこそ、ためになるさ、きっと。
>>551 スマソ、ちょっとそれは理解できない。
というか意味がわからない。ドユコト?
リファレンスカウンタっていうのはつまるところ
ガーベージコレクションつ奴なんだね?
違った?
それにしてもそれをやると
かなりデータ構造やらの改造が必要になるので
オレ的には当面は先送りしたいと思います。
メモリ効率化よりも
きちんと動作するものを作らないといかんかなと。
553 :
turbo type D :2001/03/09(金) 12:05
554 :
デフォルトの名無しさん :2001/03/09(金) 21:43
ギコナビα010のバージョン情報注目ー!!
555 :
デフォルトの名無しさん :2001/03/09(金) 21:57
556 :
turbotypeD@モナぢら :2001/03/09(金) 22:09
>>書記さん
モナプロラページ作成、サンクスーーー
>>555 d(・∀・)イィ
557 :
turbotypeD@モナぢら :2001/03/09(金) 22:27
キコナビα010コンパイル成功。 ギコナビもスレッドつかってんですなー。 モナプロラもスレッド化&ダウソ部分のコーディングは 今のところ順調。 思ったとおりにできそうっす。 プロラRさんにもいいのが提供できそうだ。
558 :
デフォルトの名無しさん :2001/03/10(土) 04:06
ギコナビさんの TBBS2ch でなんでメモリリークするのか解らん。 カテゴリ数+1?っぽいので見つけるのは楽だろうと思ったらそうでもない… う〜消化不良だ、だれか潰してくれ〜。
559 :
turbotypeD@モナぢら :2001/03/10(土) 17:21
今、CATVでLAN接続なんだけど ギコナビがWebデータを全く読んでくれない。 IEなどはプロキシ使用しないになってるんだけど。 ギコナビでも当然同様に設定している。
本家すごい勢いだネ。 忙しくってついていけないよ。(゚ε゚ )トホホ・・
561 :
デフォルトの名無しさん :2001/03/11(日) 00:46
Monaplorer, bbstable.htmlも配布してぇ〜
562 :
デフォルトの名無しさん :2001/03/11(日) 13:09
>>560 プロラRさんですか?
なにせ、仕事してないからね。
誰か、就職先斡旋してくんない?(藁
ところで、昨晩いいダウソクラスユニットができましたぜ旦那!
こんな感じの奴。
キャッシュを使う/使わない
差分ダウソする/しない
ダウソ途中でイベント発生、イベント内でApp.ProcessMessageを
かまして、キャンセルフラグ立てたり可能
ダウソ中のデータもそのイベントに随時送信
そのクラス単体でも使えるダウソユニットになるけど
(というか現状のモナプロラはこれと似てる)
それ自体をスレッドでぐりぐりまわす予定。
スレドの方はまだミカンね。
>>561 ラジャーブラジャー
つか、起動時に板一覧は表示するように変えときます。
時間オッパイいや、イッパイある
Del厨学生なんかは参加してないの?
仕事人ばかりなのかな。
563 :
turbo type D :2001/03/11(日) 13:12
>誰か、就職先斡旋してくんない?(藁 履歴書にこのスレとmonazilla.org(藁のURLを 書いとけば一発で (以下略
確かに一発(略
>>564 一発で落ちるんだろ。。それやだ。(TДT)ゴルァ
>一発で落ちるんだろ そんなことないんじゃない? オープンソースプロジェクトに参加する動機の一つに 名前と技術力をアピールすることもあるみたいだし。 ちゃんとしたものを仕上げれば、 履歴書に書くことがプラスに働くと思うんだけど...
568 :
turbo type D :2001/03/11(日) 19:09
ほんとかな。まあいいや。 今初めて気が付いたんだけど かちゅ〜しゃのスクロールバー上でPopupMenu が開くね。 こりゃなんだらホイ? 普通の ListViewやListBoxのスクロルバ- なのかな?
569 :
デフォルトの名無しさん :2001/03/11(日) 19:43
>>568 最近のWindowsについたコントロールの機能と思われ。
自力でスクロールバー実装してない限りは、つくと思われ。
あ、どうでもいいが、Delphiのエディタのスクロールバーだとでないね・・・。なぜ。
571 :
turbo type D :2001/03/11(日) 20:34
さんクスコ
>>569 独自実装じゃない?
エディタとかでも出ないよ。
572 :
デフォルトの名無しさん :2001/03/11(日) 20:45
どこのスクロールバー?
どこのことでしょ? 少なくとも、独自実装とか難しいことはしてません。
ちなみにブラウザコンポはTEmbeddedWb、 リストコンポはTExtListViewを使ってます。 海外フリーコンポですが使い慣れているので。
575 :
フッサール少佐 :2001/03/11(日) 23:17
ちょっとダケ更新。 なんか段々コードがダサダサになってきたような…。鬱だ。
576 :
turbo type D :2001/03/12(月) 00:24
>>573 ありゃま、
>>568 は私の誤解でした
Win2000で標準コントロールなら自動で付属するようです。
独自実装はDelphiIDEの話.
>>575 そういうのわかる。(藁
かちゅしゃはすごいね。がんがん目指してもらいやすわ。
577 :
turbo type D :2001/03/12(月) 00:25
>>576 目指さしてもらいやすの意味
最近書き込みすらまともに出来ないほど壊れてるのか?俺は。
578 :
turbo type D :2001/03/12(月) 11:04
マルチスレッドのコーディングについて質問です。 現在2つのやり方について悩んでいます。 Tギコスレッド Tギコダウンロード Tギコダウンロード Tギコダウンロード という所有関係を作っておいて Tギコスレッドを動作させると Tギコダウンロードが一つ一つ Tギコスレッド上で実行されるという方式・ 別スレッドが1コのものと 複数のモナスレッドを作成して そいつの所有するモナダウンロードを 実行していくというやり方 Tモナスレッド Tモナダウンロード Tモナスレッド Tモナダウンロード Tモナスレッド Tモナダウンロード Tモナスレッド Tモナダウンロード どちらがよさそうでしょうか。 とりあえず現在前者が頭の中に 浮かんでいるのでそちらでコーディングしておこうかと 思ってますが。 前者のやり方でまずい点ありますか?
579 :
turbo type D :2001/03/12(月) 12:48
2chブラウザーってオプソになってるんですね。 こりゃ慌てなければ。
580 :
デフォルトの名無しさん :2001/03/12(月) 14:04
>>578 >前者のやり方でまずい点ありますか?
同時に1つしかダウンロードできないこと。それで(それが)いいならいいけど。
581 :
turbo type D :2001/03/12(月) 18:02
書記さん、更新どうもです。
あまりにも更新が早いので
書記さんはWebデザイナーの仕事でもしてるんですか。(藁
ダウンロードユニットの
ソースアプはわざわざlzhで公開しても
見る人が少ないかなと思い
http://green.nttec.com/tech/ からアプしましたが、コピペしていただけると幸いです。
582 :
turbo type D :2001/03/12(月) 18:04
>>580 確かに同時に1ですが、その際にメインスレッド側が
待つ必要もないので
ダウンロード指令はガンガン発行できるようにしてみたり...
もすこしで完成しそう。
そしたら概要が問題ないか意見きかせてくれいな。
583 :
Dax :2001/03/12(月) 21:40
584 :
Dax :2001/03/12(月) 21:41
>>578 Hotzonuでは
Tゾヌスレッド
Tゾヌダウンロード
Tゾヌスレッド
Tゾヌダウンロード
Tゾヌスレッド
Tゾヌダウンロード
こっちです。
あんまり考えてません、
>>567 モナヂラ連中で会社をつくればよい。
ぅ、なんかスゴいことになりそう・・・
しまった、dfmを入れておくの忘れてた。。ぅっ、
587 :
turbo type D :2001/03/13(火) 09:45
Dax氏、ほうほう。 今からソースみさせてもらいます。 精進せねば。 Delphiで楽しく働ける場所があればいいなあ。 優秀な技術者の下で修行したいよ。 デスマーチの苦行とかなら嫌だけどね。
588 :
turbo type D :2001/03/13(火) 13:32
やっとスレッドを理解できた。 オレTerminatedとSuspendedの意味が混じって混乱してた。 簡単なダウンロードサンプルも動作したので これから綺麗に仕上げるかな。
589 :
デフォルトの名無しさん :2001/03/14(水) 09:20
WebBrowserで画像を表示するときに 画像ファイルを使わない方法はある? たとえばTImageを使うとか。
意味わからんよ。 データを読み込んでファイル書き込みせずに 直で表示したいということ?
591 :
デフォルトの名無しさん :2001/03/14(水) 10:15
そのと〜り。 文字ばっかりって地味だし、 かといって画像ファイルばら撒くのもうざいので TImageかTImageListにボタンなんかを 入れとくのがいいような気がしたので。
Jpg/gifファイルをダウソするときにメモリに持つ事はできるだろうが WebBrowserで表示しているのはあくまでもHTMLなのだから ファイルに持つか、直リンしておくのどちらかしかあるまい? 特殊なやり方があるのかもしれんが。
593 :
ヒロユキ@ギコナビ :2001/03/14(水) 22:27
>>589 -592
リソースに画像突っ込んで、res://で見れなかったっけ?
もしかしたら、夢で見ただけかもしれない。
>>593 おっとそうなん。それは私が知らないだけでしたね。
さあ、589さん挑戦だ!
595 :
Dax :2001/03/15(木) 22:35
596 :
turbo type D :2001/03/16(金) 15:52
597 :
turbo type D :2001/03/16(金) 19:20
書記サンはどうしてそんなに更新がはやいんですか、 あと、kylixでmonazillaするツワモノはいますか?(w ついでにIndyの互換性など報告してくれいな。
C++Builderで作りたいんだけど へたれだからDelphiコード移植が分からないでやんの(汗 どっかに変換ソフトないかな〜。
>>597 仕事せずにネットばっかりやってるからです(本当)。
ただ、幸か不幸か会社から2chへ書き込めないのが残念。。
そう言えば Kylixベータテスターは申し込まれましたか??>ALL
>>598 ほんと、変換ツールほしい。出来れば相互がいい。
STLなんか使われたら無理だけど。
IndyやHTTPCLIやその他有名コンポは
手動でDelphi>>BCB変換してるわけではないと思うのだけど
(だって手間がかかりすぎる!)
海外では変換ツールとして何かスタンダードなものがあるのじゃないかな?
全く憶測でものを言っていますが。
601 :
turbotypeD@モナぢら :2001/03/17(土) 20:50
>>書記さん お世話になっておりまする。 PascalソースをHTMLで綺麗に表示させるルーチンは 何を使っていらっしゃうるのでしょうか? コメントの認識が正しくないです。 //(*(´∀`)ココカラナ〜〜(´∀`)コメントモナ〜〜 処理 処理 処理 //(´△`)ココマデナ〜〜(´△`)逝ってよしモナ〜〜*) こういう記述ですと (*が行頭でコメントアウトされるので "処理"自体はDelphiに実行されるので 青色で色分けするのは適当ではないです。はい。 まあ、こんなコメントの書き方する方が悪いんですけど。
しまった!!
まさか、手動...(・∀・;)
605 :
デフォルトの名無しさん :2001/03/18(日) 16:07
なんか Indy、バージョンアップして ひどくセットアップしにくくなってた。。
606 :
デフォルトの名無しさん :2001/03/18(日) 16:31
607 :
デフォルトの名無しさん :2001/03/18(日) 16:35
Indy 8.00.23セットアップ 1.Indy50.dpkを開いてポップアップのオプション-情報の パッケージの種類を「設計時のみ使用可能」にする。 2.で、インストールを押す。 3.次にdclIndy50.dpkを開いてインストールを押す。 以上 Del4,Del6(!),BCB4,BCB5も同じ手順と思われ。
608 :
turbo type D :2001/03/19(月) 17:42
609 :
ふみもたたけし :2001/03/20(火) 23:18
610 :
turbo type D :2001/03/21(水) 11:52
モナプロラもexeアプしたいですが、 してもいいっすか?
611 :
デフォルトの名無しさん :2001/03/21(水) 13:19
つーか、exeないと評価でけへん
612 :
turbo type D :2001/03/21(水) 13:37
>>612 どーでもよいが、
cathe→cacheだと思う
オレも前々からおかしいと思っていたんだよ。(藁
わざとかと思ってた
616 :
turbotypeD@モナぢら :2001/03/21(水) 23:11
直しましたよ。ごめんなさい。 リリースはまた今度。
617 :
turbo type D :2001/03/22(木) 16:02
618 :
デフォルトの名無しさん :2001/03/22(木) 21:20
619 :
Dax :2001/03/22(木) 21:28
>>618 ソース見てびっくりしたよ。すごい!
UIは暫定的なものらしいけど、十分すごいよね、
今後はウィンドウがドッカブルになるらしい。
620 :
デフォルトの名無しさん :2001/03/22(木) 21:51
>今後はウィンドウがドッカブルになるらしい。 ドッカブルは状況に応じて自分で 入れ替えたりしないといけないから、 今のほうが使いやすいと思うな。 個人的にはこっちを追求してもらいたい。 名づけて「インテリフォーム」(藁
621 :
turbo type D :2001/03/23(金) 11:16
>>618 FormのParentをFormにしてるとこうなるのかな。
このあたりのコードみるとわかりますね。
procedure TfrmMain.FormShow(Sender: TObject);
begin
IncludeForm(tabsheetBoards, frmBoards);
IncludeForm(tabsheetThreads, frmThreads);
IncludeForm(tabsheetFavorites, frmFavorites);
// IncludeForm(tabsheetHistory, frmHistory);
// IncludeForm(tabsheetOption, frmOption);
IncludeForm(panelRight, frmResponses);
IncludeForm(tabsheetSearchFile, frmSearchFile);
IncludeForm(tabsheetWrite, frmWrite);
IncludeForm(tabsheetOutput, frmOutput);
IncludeForm(tabsheetRound, frmRound);
end;
procedure TFormEx.IncludeForm(ParentControl, ChildControl: TWinControl);
begin
ChildControl.Parent := ParentControl;
ChildControl.Align := alClient;
ChildControl.Visible := True;
if ChildControl is TForm then
with TForm(ChildControl) do
if Assigned(OnActivate) then OnActivate(ChildControl);
end;
不思議なコーディング&UIだ。>Shortcuts
オレとは全然ちがうなあ
インストしやすいように
HistoryEdit、Inifilerを含めたパッケージ付属キボーン。
ツールバー&ショートカットカスタマイズまで実装とは驚いた。
622 :
デフォルトの名無しさん :2001/03/24(土) 00:35
面白い。Form内にForm入れてるんすね。 Delphi5のFrameみたいな感覚なんすかね。
623 :
デフォルトの名無しさん :2001/03/24(土) 01:23
こうすりゃスクロールボックスの中に出来て偽MDIが実現できるよ。 ドッキングはよーわからんけど。 A := TForm1.Create(Self); A.Parent := ScrollBox1; A.Show;
624 :
turbo type D :2001/03/24(土) 20:26
そんなコードまでkylixって移植できるのだろうか。
625 :
Dax :2001/03/24(土) 21:08
ま、あと、数日すりゃベータが届くから分かるね。
>>624 ホットゾヌ Indy 版が動くかどうかも心配、
Kylixが出ればLinux用2ちゃんブラウザも増えるだろうね。
626 :
Dax :2001/03/24(土) 23:22
627 :
Dax :2001/03/26(月) 22:56
あ、言い忘れ。 俺のお気に入りファイルと書き込みテンプレートが ついてくるけど気にしないでね。 しつこいようですが *ブラウザ* なので、 興味あるかたはテストお願いします。 #巡回はできません。
629 :
>Dax :2001/03/26(月) 23:02
menubarが見つからないって怒られるんだけど どこで手に入れるの?
つーか、ソースとexeは一緒に配布してもらえるとありがたいです。
631 :
Dax :2001/03/26(月) 23:11
↑IE4じゃなくて IE3でした。 今時 IE3環境で動きます。
test
634 :
turbo type D :2001/03/27(火) 20:26
635 :
turbotypeD@モナぢら :2001/03/28(水) 00:57
書記さんは忙しいのでしょうか。やっぱし年度末だしね。
636 :
ふみもたたけし :2001/03/28(水) 22:13
そろそろかちゅ〜しゃもVerupするみたいですね。 改めてかちゅは完成度高いなあと関心ですわ。
638 :
Dax :2001/03/30(金) 00:53
639 :
turbo type D :2001/03/30(金) 19:20
640 :
turbo type D :2001/04/02(月) 10:40
えっと、下がりまくっているのでage 質問なのですが、うちの会社環境ではFTPがつかえません。 でも、monazilla_studioでアプすることは出来ます。 これはなぜでしょうか?
641 :
turbo type D :2001/04/02(月) 11:01
642 :
デフォルトの名無しさん :2001/04/02(月) 11:17
>641 かちゅの旧版はread.cgiを読んでたが、新版はdatを直読みしてる。 >640 火壁では?PASVモードにしても駄目?
>>642 サンキスト!(´3`)チュウ
dat読むと更新されないページが山ほどあるが
ユーザーの人々はそれを許容できるかな。
現にこのmonazillaスレのdatもまだまだ更新されていない。
不便だ。
日壁なんだろうけど、詳しい事はハテナ。
PASVモードってのは??。
知識が歯抜けでスマソ。
>643 一般的なFirewallは、内から外への接続のみを許可して 逆は許さない事が多い。 FTPの一般的なDataConnectionは、外から内への接続に なるんで、上記の理由からFirewallに弾かれる。 FTPのPASV Modeは、内から外にDataConnectionを張る んで、Firewallを回避出来る場合もある。 --- 2chブラウザは、ともかく<オイ! IEコンポーネントの使い方とかDelphiスレの質問とか参考 になってるんで、実は感謝&注目してるよん&hearts; 普段ROMってて申し訳ないけど(^_^;
645 :
turbotypeD@モナぢら :2001/04/03(火) 23:23
646 :
Dax :2001/04/04(水) 00:22
647 :
turbo type D :2001/04/04(水) 10:33
usesの SHDocVw_TLB ってのはどこにあるのでしょうか?
648 :
デフォルトの名無しさん :2001/04/04(水) 16:16
TLBって付いてるからタイプライブラリ取り込みじゃないの? Microsoft internet Controls (Vresion ?.?)だと思う。
649 :
turbo type D :2001/04/04(水) 19:27
ホットゾヌブラウザで SHDocVw_TLB は必要ないようなのですが、ソースに書いているのは 余分かな?
650 :
Dax :2001/04/04(水) 23:34
651 :
デフォルトの名無しさん :2001/04/05(木) 02:29
652 :
Dax :2001/04/05(木) 22:24
>>651 おお!ICSって言ったらギコナビが使ってるコンポですね。
Kylix版、あったんだ。
とにかく Kylixはもっとコンポを充実させてほしいね。
653 :
turbo type D :2001/04/09(月) 12:55
オレはここ数日忙しくて慌てふためいていたのだけど。。 みなさん、どーっすか、最近は オフカイとかどうなったっすか? プログラム板のカキコが調子ワルカッタので おもむろにかちゅーしゃ2を導入しました。 かっこいいですね。
654 :
Dax :2001/04/09(月) 23:33
モナヂラオフの話はどなったんでしょかー。 とりあえず turbo type Dさん幹事っつーことで。 あ、おれは出られそうにない、、(泣 プログラム板 (Pizaサーバー) はスクリプト変更があったみたいです。 ヒロユキ@ギコナビ氏によると Refererを設定すれば書き込めるそうです。
655 :
turbo type D :2001/04/10(火) 17:33
> モナヂラオフの話はどなったんでしょかー。 どーなったか、オレが聞いたのに、(TwT)ル〜ルル〜 > とりあえず turbo type Dさん幹事っつーことで。 そーなんッッッ!(゚w゚;;; Kylixオフや2chプログラマ板オフに便乗しようかと おもっていたのですが.... それすら出られなさそうな状況なんすけど>>オレ。 んー。来週明けまで何もかもが忙しいので、 なんともうごけません。 プログラマ板オフが21日(土)らしいので便乗する? monazillaな人が誰かいくなら、オレも参加考えます。 (まだ考えるだけだけどね。(藁)
sage
お待ちしております。
658 :
ヒロユキ@ギコナビ :2001/04/12(木) 01:46
モナヂラスレに書き込んでも書き込まれないと思ってたら、
この板はpizaだったのね。
>>655 忙しくなってきたです。
オフが連休後だったらなー。
ていうか、無気力を直す薬ないですか?
この何も考えずに工場で流れ作業をやるような 腐れ仕事をなんとかしてほしい。助けて...
>>660 おおお。Kylixですか!
ScreenShot見た限り、Delphiのアプリを移植しやすそうですねー。
# とはいいつつも、unixくささ(?)が残っててちょっと残念
662 :
デフォルトの名無しさん :2001/04/14(土) 21:44
663 :
書記さん :2001/04/14(土) 22:15
>>662 情報ありがと!
さっそくmonazilla.org(w のページにもリンクつけました。
664 :
ヒロユキ@ギコナビ :2001/04/15(日) 00:49
Linuxのホットゾヌ、カッチョイイ!! ベータ申し込むんだったー。 それより、Linuxって綺麗なフォントないの? MSゴチとか、そのまま使えたりしないのかな?
665 :
Dax :2001/04/15(日) 00:52
Linux厨房なんでさっぱりなんです、>フォント AAとかキレイに表示するフォントがあるらしいんだけど 会社のPCにゃちょっといれきらんです、
666 :
turbotypeD@モナぢら :2001/04/15(日) 17:47
ペンギンというか犬というか、サイコー マンセー。(w
667 :
デフォルトの名無しさん :2001/04/17(火) 22:12
>>664 そうそう、いまいち移行に踏み切れないのは、フォントに抵抗あるんよね
#なんか、偽もん臭くて・・・
668 :
>>664 :2001/04/17(火) 23:57
X-ttならそのまま使えるよ。
669 :
デフォルトの名無しさん :2001/04/22(日) 09:45
とりあえず、共同開発の手法の参考としてもここは沈んでもらいたくないよアゲ
670 :
Dax :2001/04/22(日) 21:11
671 :
ヒロユキ@ギコナビ :2001/04/23(月) 01:59
>>670 ギコナビもmonazillaのプロジェクトなんだけどなー。
んで、僕も仕事が忙しいです。
でも、仕事の忙しさとギコナビ作るスピードってのは、あんまり関係ないみたい。
ムカツク仕事だと、家に帰ってきてもやる気ゼロだし。
今はムカツク仕事だから、やる気ゼロ。
ほっんとにムカツク。あ゛ぁぁぁぁー。ストレス溜まり病だよ。
あー愚痴ばかり。ゴメソ
672 :
turbo type D :2001/04/23(月) 10:34
まちがえてDel相談に投稿しちまった。
>>671 >ムカツク仕事だと、家に帰ってきてもやる気ゼロだし。
>今はムカツク仕事だから、やる気ゼロ。
わかるーー。
愚痴りな.愚痴りな.
オレは仕事が忙しいと残業になっちまうから
スピード遅くなるのがくっきりわかるけど。
まーーーったく関係ないけど、
「こげぱん」って絵本、お勧めだよ。
ヤサグレ極限キャラに共感を覚える。
PS
Halbo=pramaguとは。初耳。(藁
673 :
Dax :2001/04/23(月) 10:42
>>671 >ギコナビもmonazillaのプロジェクトなんだけどなー。
ごめんちゅーー!忘れてた訳じゃないからねーー。
で、ギコナビ 1.0α013リリースお疲れさまです。
昨日、家のマシンにIE5入れたので試すことができます。(今までIE3だった・・)
ギコナビのUI変更計画、実は一回俺も挑戦したんだよー。
でもできなかった、、どうしてもListViewの内容が消えちゃう、
#こげぱん、知ってる!ぼそっとつぶやく一言がうける。
674 :
turbo type D :2001/04/23(月) 11:57
675 :
ヒロユキ@ギコナビ :2001/04/23(月) 22:07
>>672 >愚痴りな.愚痴りな.
こんなところで愚痴ってすみません。
>オレは仕事が忙しいと残業になっちまうから
>スピード遅くなるのがくっきりわかるけど。
僕は、終電で帰ってきても、仕事が順調だと3時くらいまで
ギコナビ作っていたりしてる(w
でも、次の日はパッと起きれるんだよなー。
こぱげん探してみるよ。
>Halbo=pramaguとは。初耳。(藁
むむむむむっ!としか言えん(w
>ごめんちゅーー!忘れてた訳じゃないからねーー。
ジョークす。
ギコナビは簡単なバグ修正でお茶を濁してます。
いや〜。作った本人もListViewの内容消えてしまう動作を取り去るのに
苦労したりしてます。理解不能なコードだらけというのが情けない。
>ヘジルスバーグ様(藁
ヘジルスバーグちゃんってこんな顔だった?
Delphi1の写真は別人だったのかなー?
>面白いな、こういうのも。
凄いね。monazillaも頑張って、どっかに取り上げられるくらいになりたいね。
676 :
turbo type D :2001/04/24(火) 12:39
すでに、monaploreのソースの大半を忘却してしまた...ワラ >>面白いな、こういうのも。 >凄いね。monazillaも頑張って、どっかに取り上げられるくらいになりたいね。 ですです。 雑談。 monaplorerはダウソ部分にはこだわったけど ブラウザ部分のこだわりが弱すぎ、ファイルキャッシュを 呼んでからそれをブラウザで表示とはいただけないので ブラウザ部分はメモリ直で読み込むようにしてみる予定。
677 :
デフォルトの名無しさん :2001/04/30(月) 15:56
678 :
書記さん :2001/04/30(月) 17:42
679 :
デフォルトの名無しさん :2001/05/01(火) 02:55
なんで2chのCGIスクリプトって板ごとにまちまちで、挙動が変なんだろ。 要望出して統一してもらうことはできないのかな。 まあIDやらなにやらで完全な統一はできないだろうけど、 少なくとも同じ機能は同じ書式にして欲しいね。
680 :
デフォルトの名無しさん :2001/05/01(火) 03:52
だれか、Emacsで2ch読み書きできるやつもってませんか?
UNIX板にあったよ。emacs-lispで書いてあった筈。
683 :
デフォルトの名無しさん :2001/05/01(火) 08:29
>>679 確かに。しかも小さい変更がたまにあるので
そのつどアップデートしなきゃいけない・・・
でも一番やっかいなのはあぼーんかな。
統一に関しては過去の DAT もあるから無理でしょうね。
684 :
デフォルトの名無しさん :2001/05/01(火) 08:30
685 :
turbo type D :2001/05/01(火) 10:32
プライベートでつらいこと続きで 憤死しそうです。 どうしたらいいでしょう。 (藁.....ってる余裕はまだあるけれど。
>>685 そんな時は、学歴板でも荒らして、憂さを晴らしましょう(藁
そうします。では逝ってまいります。
688 :
デフォルトの名無しさん :2001/05/02(水) 04:02
689 :
デフォルトの名無しさん :2001/05/03(木) 04:14
なんだ、フレームの中のページのURLが広まっちゃっただけじゃん。
>>691 それはページ下部に広告があるじゃないですか
ジオの規約ではページ最上部に表示されていないとダメなんです。
どもども、いやー正直、モナヂラサイト開設当初は 一時的なもののつもりだったんですけどね。 で、そろそろ新しいとこへ引越しする予定です。 決まり次第ここでお知らせします。では
ちょっとスレ違いかもしれませんのでsageで。 IEの右クリックに、2ch用ブラウザへ送るコマンドを付け足す事は出来るでしょうか?
697 :
デフォルトの名無しさん :2001/05/04(金) 21:06
出来る。 もうスレ違いなレスすんなよ
698 :
書記さん :2001/05/04(金) 22:37
699 :
デフォルトの名無しさん :2001/05/05(土) 00:04
移転お疲れ様です。 ずっとROMで済みませんが、今後とも頑張ってください。 >書記さん
700 :
デフォルトの名無しさん :2001/05/05(土) 17:05
PSPやFireWorksでも
その画像は Illustrator + Photoshop です。 家では貧乏なので G.Crew + PhotoCrew を使ってます。 出版目的じゃないならこんなので充分と思いますよ。 前は Micrografx の Designer + PicturePublisher 使ってました。 これも安くて使いやすかったです。
ラストが学歴板の話題になってるなんて寒すぎるので アゲ。 monazillaMLで会話するのもいいけど こっちがsagaりすぎてるとまずいっすね。
704 :
turbo type D :2001/05/09(水) 10:28
あれ?カキコしっぱいかな。
705 :
Dax :2001/05/09(水) 12:01
あ、言い忘れ。
>>705 今のところプロキシ環境では使えないです。
>>703 monazillaML なんてあるんすか?
>>707 monazilla ML はメンバーオンリーですがひっそりと運営しています。
進捗報告と雑談がメインです。
709 :
デフォルトの名無しさん :2001/05/11(金) 11:14
はじめまして。 おもしろそうなので、アイコンやらのデザインしたいなあ。 プログラム関係はさっぱりだけど、そっちは本職なんで ここで作っているのって、ウインドウズでしか動かないのかな? 自分はマックなんだけども。
710 :
書記さん :2001/05/11(金) 13:48
>>709 すごい!大歓迎です!
#モナヂラプロジェクトでつくってるツールはWindowsのみです。
#新 mac 板で2ちゃんねるブラウザをつくっているスレッドがあったと思います。
711 :
デフォルトの名無しさん :2001/05/11(金) 13:59
>>709 でもアイコンやらは機種依存、あんまり関係ないんで激期待
ウインドウズ系とは別センスの、アイコンキボーン
712 :
夜勤@サーバ監視所 :2001/05/11(金) 20:03
monazilla さん、メール出しました。 ぜひ読んでください。
713 :
名無しさん@お腹いっぱい。 :2001/05/12(土) 16:32
715 :
書記さん :2001/05/12(土) 23:38
>>712 夜勤さん、メールありがとうございます。
今後もよろしくおねがいします。
>>713 すごい!リンクに追加しました。
しかもMonaicってかこいい名前!
>>714 これまたすごい!リンクに追加しました。
これだけあれば簡単にブラウザつくれちゃいそうですね、
みなさん、OSや言語は違いますがモナヂラに参加しませんか?
#参加したからってなんか特典があるわけじゃないけど・・・
716 :
デフォルトの名無しさん :2001/05/14(月) 12:30
age
717 :
デフォルトの名無しさん :2001/05/19(土) 16:55
age
719 :
ふみもたたけし :2001/05/21(月) 00:10
720 :
Dax :2001/05/21(月) 00:37
なんかすご!
>>719 #コンパイル通らないと思ったら exeフォルダと
#dcuフォルダつくってなかった(焦汗。
さがりすぎなので、あげます
722 :
デフォルトの名無しさん :2001/05/27(日) 18:23
さげるのくせになってる・・・(´д`;)
723 :
Dax :2001/05/27(日) 20:33
725 :
ふみもたたけし :2001/05/28(月) 01:44
726 :
win板住人 :2001/05/28(月) 10:15
ゾヌ、の書き込みテンプレートはおもしろいなー
めっちゃ気に入りました! いろいろと欲しい機能はありますが、 期待して待ってます。 お気に入りを収集中・・・。
728 :
Dax :2001/05/28(月) 12:41
ありがとうございます、>ダウンロードしてくれた方々 今のところβ版なので今後仕様が変わったりする可能性もありますので 他のツールと併用していただくことをお勧めします、 それから言い忘れた件。 ・更新チェックはお気に入り内のフォルダを選択して実行してください。 そのフォルダ直下のスレッドをチェックします。 ・HotzonuのTempフォルダ内のファイルを削除するロジック入れるの忘れていました(おいおい ファイルがいっぱいたまるので定期的に削除してください。。 ・お気に入りへの追加方法はスレッド一覧からお気に入りへドロップしてください。 ・板やスレッドはダブルクリックでダウンロードを開始します。 かちゅ〜しゃのようにクリックじゃないので注意。 ・まちBBS、JBBS、megabbsでは書き込みができません。 ・まちBBS、JBBS、megabbsのスレッドは更新チェックができません。 ・JBBSなどのBBSを追加する場合は「ファイル」−「BBSの追加」を選んで下さい。 ウィザードが起動します。 ・BBSの切り替えはボード一覧の上にある「▼2ちゃんねる」って書いてあるボタンを クリックしてください。まちBBS、megabbs、その他のBBSが選択できます。
729 :
書記さん :2001/05/28(月) 14:15
>>728 お疲れ様です。
バグ?報告
レスが1件しかないスレを表示しもう一度読み直すと1件目と同じ記事が
2件目に表示されました。再起動しても同じでした。たぶんログ削除すれば直るんでしょう。
やってないけど。。
要望:書き込みウィンドウが本体をアクティブ状態にしたときにイチイチ小さくなるのがうざいです。
98+IE4環境でホットゾヌ1.0β1を使用してますが実に快適です。 たまに書きこみの時に落ちますが、これは当方の環境が原因と思われ。
>>730 しまった、なおそうと思って忘れてました。
報告ありがとうございます!
それから書き込みウィンドウに関しては私も超うざいと思ってました。
んで強引な方法を思いついたので次回リリースはちょっとましになります。
>>731 報告ありがとうございます。
今度練習スレあたりに書き込みまくってテストしてみます。
98me+ie5.5でホットゾヌ1.01β1を使用しています。 今のところ不具合ありません。 でホットゾヌの作者さんに質問なのですが、 かちゅーしゃのように縦に3つ表示(板のペイン|スレッドのペイン|レスのペイン)は出来ますか?
>>733 ダウンロードありがとうございます。
縦3列表示、、確かにあると便利そうですね。
簡単にできそうだったら次期リリースに実装します。
>>734 レスありがとうございます。次期リリース版を楽しみに待ってます。
参考になるかわかりませんが…
当方デュアル環境なので1つ目のディスプレイで板一覧とスレッド一覧(若しくはスレッド一覧のみ)、
2つ目のほうでレスが読めると便利なんです(現在かちゅ〜しゃをそういう風にしています)。
736 :
デフォルトの名無しさん :2001/05/30(水) 18:48
β版、使わせて頂いてます。 なんだか便利そうで、勝手に期待させてもらってますー。 (あ、私も出来れば縦3列表示を追加して頂けると至福です)
すみません、736はホットゾヌ1.01β1の作者さんへの感想です。
738 :
731 :2001/05/30(水) 23:44
あれからホットゾヌ1.01β1使いつづけていますが すっかり気に入ってしまいました、いいですね、これ ただ、お気に入りに入れたスレが消えた状態で更新チェックすると そのスレの所で固まってしまう…なんか、自分の環境のおかげな気もするのですが 他に同じ症状の人いませんか?
>>735 デュアルディスプレイ・・羨ましい・・
>>736 ダウンロードありがとうございます。
縦3列表示は実装できそうです。
>>738 >すっかり気に入ってしまいました、いいですね、これ
うれしーーウルウル
更新チェックはかなり手抜き実装なので
もうちょっと改造してまともにします。
それまで待って下さいませ。
ところでホットゾヌ用別スレ立てたほうがいいのかな?
>>739 >ところでホットゾヌ用別スレ立てたほうがいいのかな?
Yes! May be!
>>739 液晶ディスプレイを衝動買いしてしまったのです。
>縦3列表示は実装できそうです。
気長に待ちます。頑張って下さい。
742 :
Dax :2001/06/02(土) 00:28
>>742 お疲れ様です。激烈に使いやすくなりました。
縦3列になって、板、スレの一覧が非常に見やすいです。
これから色々触ってみます。
744 :
デフォルトの名無しさん :2001/06/02(土) 21:08
てすと
すみません。 まちがえてこんなところでtestしてしまった・・・
全然関係ないけど、monazilla.orgのページのhtmlソース異様に改行多いんだけど、 あれって、PageMillの機能?
>>746 PageMillの機能(?)かなー。、
一応、GoLiveも買ったんだけど使いにくくて
今でも PageMill 使ってます。
そー言えば久々にGeoの方見たらバナーが上になってた、
748 :
デフォルトの名無しさん :2001/06/09(土) 11:04
あげ
749 :
Dax :2001/06/09(土) 18:35
うーーーん PageMillやGoLive.... どこかで誰かが使っていたような(藁 おっと、無粋な発言スマソでござる。
PageMillやホームページビルダーは 値段も手頃なので使ってる人も多いのかな? 最初は Netscape Composer(無料!)使ってましたがありゃちょっと、、。
良い企画ですね。 実は私も専用ブラウザをC++ Builderで作成中です。 公開が目的ではなく、今までいくつかのソフトを作ってきて、FTPやHTTP 接続は経験があるものの、ブラウザ関係(BCBではTCppTWebBrowser) は使った事がなかったので一度使ってみたかっただけなんです。(^-^; 現在のところ、そのTCppTWebBrowserが一番悩みの種なんですが。 応援しています、今後もがんばって下さい。
>>752 TCppWebBrowserの使い方なら
ここや、近くのスレで
聞くのが一番いいのじゃないでしょうか。
あっしなんぞよりもツワモノが、いっぱいいっぱい
いらっしゃるような気するYO
それにしても、雨が降ってきまして
じめじめして暑苦しいので
ここで一発寒くなる
くだんねー、話題。
いっぱいいっぱいの、
'い'を'お'に変えて言ってみーな。
っていう遊びなかった?
ゴメン、オレ汚れちゃった....
>>753 早速のレスありがとうございます。
> ここや、近くのスレで
> 聞くのが一番いいのじゃないでしょうか。
このスレは一通り目を通しましたが、Delphi使いが殆どのようでしたし、
あまり厨房スレで汚すのもどうかと思いまして(笑)。
本当に困った時等は質問させて頂きますね。
TCppWebBrowserぢゃなくて、このコンポをインストールすると良いよ
とかいうアドバイスなどありましたら、是非お願いします。
ちなみにHTTPは現在の所、NMHTTPを利用してますが、Indyに切り替え
ようかと思っています。
Wininetでも良かったのですが、とりあえずプロトタイプなんで手抜きです。
細かいコンポなどの構成は、後日ご紹介しますねん。
(いらんか?)
755 :
デフォルトの名無しさん :2001/06/10(日) 19:37
>>753 おっぱいていわせたいんだろ?
俺も一度騙された事あるよ
おっぱいいっぱい
757 :
デフォルトの名無しさん :2001/06/10(日) 19:50
おっぱおおっぱお
ちんこちんこ
useagentをMonazillaにしてみたよage
761 :
委員長 :2001/06/14(木) 19:35
monazilla.org (w に置いてある、「TWebBrowserでスクロールさせる方法 」を C++ Builderで使いたいんだけど、Delphiを知らない私には、どーにも移植出来 ない。 一週間程、Web検索してアレコレいぢってはみたんだけどねぇ。 申し訳ないだけど、↓これをC++ Builder用に訳して恵んで貰えませんか? procedure TForm1.Button1Click(Sender: TObject); var Doc: IHTMLDocument2; y: Integer; begin Doc := WebBrowser1.Document as IHTMLDocument2; y:=olevariant(Doc).body.scrollTop; ShowMessage('現在のスクロール位置は'+ IntToStr(y)+'だぞ(゚Д゚)ゴルァ'+#13#10+ '勝手にスクロルさせるから覚悟しておけ'); y := y + 100; Doc.parentWindow.scroll(0, y); end;
762 :
委員長 :2001/06/14(木) 19:37
Delphi の TWebBrowser では出来るけど、BCB の TCppWebBrowser では出来ないなんて事はないよね?
763 :
gh :2001/06/14(木) 21:11
漏れは生っぽいCOMしか知らないけど、たぶん、こんなかんじ。 IHTMLDocument2 *doc; //引数 CComPtr<IHTMLElement> element; doc->get_body( &element ); //↓暗黙のQueryInterface CComPtr<IHTMLTextContainer> contain = (IHTMLTextContainer*)element long y; contain->get_scrollTop( &y) CComPtr<IHTMLWindow2> win; doc->get_parentWindow( &win ); win->scroll(0,y);
764 :
委員長 :2001/06/14(木) 22:25
>>763 これはmshtml.h以外にincludeが必要な物があるんですかね。
CComPtrが未定義だとエラーが返ってきちゃいます。
TCppWebBrowserをどこに入れるのかも判らないし。
厨房で申し訳ないっすが、ペッとコピペでOKなヤツを恵んで
下さいな。 > どなたか
タイプライブラリを取りこめば、 IHTMLDocument2Ptr doc; doc = browser->Document; IHTMLElement2Ptr body = doc->body; doc->parentWindow->scroll(0, body->scrollTop + 100); で出来るんじゃないかね。 MSHTML_TLB.hの中でutilcls.hやvclatl.hをincludeしてる
766 :
委員長 :2001/06/15(金) 00:36
>>765 タイプライブラリを取り込むというのは
#import <mshtml.tlb>
を追加すればよいということですか?
#include <mshtml.h> ではIHTMLDocument2Ptr が未定義と出るので
Webで検索してみて、#import <mshtml.tlb> を見つけたのですが。
ただこれでコンパイルすると何故かBCBが落ちてしまいます(涙)。
>>767 「マニュアル読め」
便利だよな、何の知識がなくても言えるから。
リンク張る前に教えてやれよ(藁
769 :
委員長 :2001/06/15(金) 16:21
すません。 TCppWebBrowser はマニュアル・ヘルプ共に情報が少ないんで、レスが 付けば良い資料になると思ったんすけどね。 とりあえず、レス番号のブックマークへジャンプする方法で対応して おきます。 気長に口開けて待ってますんで、いい情報があればよろぴく。
忘れてた、一応私の構成を。 BCB5にて作成中。(名前はまだない) HTTP - TNMHTTPからIndyに移行中 ブラウザ - TCppWebBrowser 板リスト - TTreeView スレリスト - TStringList アッチコチ既出の専用ブラウザのアイデアやUIをパクりまくり。 既出ブラウザに不満があった訳ではなく、単に作ってみたかっただけ。 公開しても他人を不幸にするだけなので、特に公開の予定はないかな。 (といいつつ、ゲオにスペースを既に取ってることは秘密)
>>768 >マニュアル読め
は、
>タイプライブラリの取りこみ
について言ったつもりだが、理解できなかったか。
リンク先のスレにオートメーションコントローラの触り方とかもあったはず。
Delphi風のプロパティを使ったアクセスをあきらめてATLにするなら、
山ほど資料は転がってるしな。
774 :
デフォルトの名無しさん :2001/06/18(月) 05:31
あげ
775 :
デフォルトの名無しさん :2001/06/18(月) 12:20
776 :
jtelaz :2001/06/22(金) 03:19
最近フォーマットが微妙に変わった subject.txt なんですが、 現状は以下の4通りが混在する可能性があるという理解で良いでしょうか? (実際に混在するのは1と2だけだと思いますが) 1. dat<> ... <xxx> 2. dat<> ... (xxx) 3. dat, ... (xxx) 4. dat, ... (xxx) 全角丸カッコ 他にもあったりするんでしょうか?
>>776 その4種類だと思います。
>>276 の3種類に dat<>,,,(xxx) が追加です。
778 :
デフォルトの名無しさん :2001/06/28(木) 08:13
さがりすぎー。
779 :
デフォルトの名無しさん :2001/06/28(木) 14:32
subject.txtの形式は、
takoが','区切り、他は<>区切りです。
ただし現在<>区切りの鯖でも倉庫のログが','区切りになっている
場合があります。
<>区切りの場合、<>の後に1つ空白が入ることがあります。
最後につくレス数は、
<レス数>
(レス数)(←全角)
(レス数)
のいずれかです。<>区切りであっても<レス数>とは限りません。
レス数の前に、空白が沢山付いている場合が多々あります。
','区切りの場合は、全て&を一文字の&に要変換。
さらに、'@'+'`'を','に変換します。
<>区切りではどちらの変換も行いませんが、古いログでは&→&
の変換が必要な場合があります。とりあえず
・&は&に変換
・ただし&はそのまま
とすることをお勧めします。これは倉庫のhtml化スクリプトと互換です。
デリミタは、teri系が<>区切りで、最後の<>の後に空白が一つ、
他は','区切りで最後の空白なし。
また、メール欄が空白の時は区切り文字が連続しますが、
','区切りのログでは何か文字が入っていると、余分に空白が一つ付いて
いた時期があるようです。 <>区切りのログでは余分な空白は付きません。
タイトルの長さは、最近のサーバーならSETTING.TXTのBBS_SUBJECT_COUNT
で規定される制限があり、空(長さ0)のタイトル不可のようですが、
takoははるかに長いタイトルが可能で、タイトルが空のスレもあります。
また、www.2ch.netにあったスレが残っているような板も
長いタイトルがある可能性があります。
あぼーんされた行は
<>区切り あぼーん<>あぼーん<>あぼーん<>あぼーん<>あぼーん
tako あぼーん,あぼーん,あぼーん,あぼーん
その他 あぼーん,あぼーん,あぼーん,あぼーん,
となり、スレの1だった場合、タイトルが空白(<>区切りではあぼーん)に
なります(takoは、デリミタが足りなくなるので要注意)。
また、板の復帰後はsubject.txt内のタイトルも空白になります。
稀にdat内に'\0'が入っている場合があるので要注意です。
書きこみ内容に'\0'が含まれると、そのままdatに入ってしまうようです。
例
http://mentai.2ch.net/test/read.cgi?bbs=os&key=977070641&to=5 )
その他、例外としては、
http://piza.2ch.net/test/read.cgi?bbs=tech&key=974514695&to=5 )
の2なんてのもありますが、
こんなのが幾つもあるとは思えないので、エラー扱いでいいかも。
2chの仕様変更に合わせて
>>276 -288を修正してみました。
>','区切りのログでは何か文字が入っていると、余分に空白が一つ付いて >いた時期があるようです。 <>区切りのログでは余分な空白は付きません。 変換されたログで余分な空白の入っているものがあるかも。
>>779 うう、すばらしい解説です〜
ぜひモナジラ資料室に保管して頂きたい内容です。
うーん、すばらしい!どうもありがとうございます、
>>779 資料室にいれておきました。
784 :
デフォルトの名無しさん :2001/07/07(土) 09:49
かちゅーしゃとホットゾヌがverupしてるよ。 ってここに書けばいいの?
785 :
名称未設定 :2001/07/08(日) 01:55
とりあえず、どんなRequestを送って、どんなエラーがでたのかを、 示した方がいいよ。(つーか、そうでないと、何ともいえんよ‥‥)
787 :
デフォルトの名無しさん :2001/07/08(日) 14:41
お騒がせしました 解決しました。refererを指定し忘れていたのが原因でした
789 :
デフォルトの名無しさん :2001/07/11(水) 10:36
あげ
790 :
デフォルトの名無しさん :2001/07/11(水) 15:33
791 :
デフォルトの名無しさん :2001/07/12(木) 06:43
「かちゅ〜しゃ Version2.101」でてます
792 :
デフォルトの名無しさん :2001/07/13(金) 09:55
かちゅーしゃが「ふぁいるがみつかんない」ってでてくるよぉ
「かちゅーしゃ Version2.102」でてます。報告まで
795 :
デフォルトの名無しさん :2001/07/16(月) 01:10
ホットゾヌ Verup!!
796 :
あげまん :2001/07/19(木) 18:50
あげ
797 :
( ´∀`)さん :2001/07/20(金) 09:06
あまり、オプソスは知らないが、GIFのボタンは造れる それを、オプソス用に変えるのはそちらの仕事
?
>>797 ボタンやアイコンの職人さんかな?
デザインが苦手って人も多そうなので、歓迎されると思う
>>800 それならかなり歓迎されそうだな。
coolでわかりやすいアイコンってなかなかムズイからねー。
やっぱ桶屋は桶屋にまかせとけってか。
802 :
ライト :2001/07/23(月) 00:31
あるサイトで「似槍」っていうツールが書いてあったんですが、 デンコじゃないみたいなんです。 思い当たりますか?分かる方いらっしゃいましたら 教えてください。
誤爆ですか
804 :
ライト :2001/07/23(月) 02:12
『誤爆』というのはなんでしょうか?
805 :
ライト :2001/07/23(月) 02:14
すいません、書く場所間違えました
>804 802が意味不明なんで書き込むスレッド間違えてないか?ってこと
>>804 誤爆ですか -> 書き込むスレを間違えましたか?
808 :
デフォルトの名無しさん :2001/07/23(月) 04:48
自爆、誘爆、御用心
811 :
デフォルトの名無しさん :2001/07/26(木) 15:17
812 :
ヒロユキ@ギコナビ :2001/08/02(木) 21:14
モナヂラBBSが見れないよ。
あれれ、モナヂラBBS、 よく見ると「雑談」の書き込みがちょっと減ってるよーー;;
815 :
デフォルトの名無しさん :2001/08/03(金) 08:38
age
age
817 :
デフォルトの名無しさん :2001/08/04(土) 20:32
っっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっp
818 :
デフォルトの名無しさん :2001/08/09(木) 21:34
ホットゾヌのソースをkylixで読み込んでみたけど「コンポーネントがたらねぇよ」 って出た
UI 部分(Main.pas等) は WebBrowser や CoolBar などの VCL にしかないコンポーネントを使っているので Kylix では開けません。 ダウンロード/解析部分 (Hotzonu.pas) だけならいけるはずです。
820 :
デフォルトの名無しさん :2001/08/16(木) 19:55
821 :
BCB+Delphi+gccつかい :2001/08/16(木) 23:01
ほっとぞぬ for Linuxのおてつだいしたいのだが Kylix OpenEditionでいけるか? いけるならKylixダウソしてみるが。 まえどっかでLinux版ののScreenShotみたような気がしたが どこだっけか・・・
822 :
デフォルトの名無しさん :2001/08/17(金) 19:15
Delphiをでるふぃーって読んでた俺ってなんでしょう?
825 :
Dax :2001/08/18(土) 10:35
826 :
デフォルトの名無しさん :2001/08/18(土) 14:31
827 :
821 :2001/08/19(日) 18:14
828 :
88*31バナーを作った者 :2001/08/19(日) 19:44
ボタンやアイコンってどんなの作ればいい?
829 :
821 :2001/08/20(月) 01:27
試してみた。 Kylix OpenEditionインストールして (いまのとこ)日本語も大丈夫そう。 Indy8はエラー出たので回避。 Indy9βはエラーもなくあっさりインストール完了。 で、ライブラリコンパイルしてみようと思ったら Hotzonu Library for Kylix は usesのところでInternal error: URW3572 1.8.2のほうは Zonutils.pasのSHFileOperation等Win32Apiで挫折 UIはTNotebookがないくらいでなんとかなりそうかな。 報告だけでスマソ
830 :
823 :2001/08/25(土) 12:30
831 :
デフォルトの名無しさん :2001/08/26(日) 01:49
Delphi6にIndy入れたんですけど、デモのブラウザを 開くと、プロパティが存在しないって言われます。 なんでですか?
∩∩ ( ゚Д゚)
834 :
デフォルトの名無しさん :01/08/26 22:37 ID:6j8K62as
Kylixのiconださいのう
835 :
とり ◆St49DSmc :01/08/26 22:41 ID:5Zsmqcqs
836 :
aki :01/08/27 04:46 ID:Z/nLX8Y2
837 :
821 :01/08/27 06:37 ID:hew2wb.o
KylixOpenEdition日本語版も試してみた。 が、英語版といっしょだった。 で気づいたが、OpenEditionにはHTTPAppがない(と思う) Delphi付属のソースつっこんで使ってみたいとこだが ライセンス違反になるのか(鬱
mod_gzip導入されたら、dat直読みでもツール側が対応せねばならないのかな、やっぱ。 早めに対応しておかないと導入された瞬間読めなくなるな・・・
839 :
デフォルトの名無しさん :01/08/27 14:05 ID:oaM2dYU.
( ゚д゚)ん??何か?
840 :
デフォルトの名無しさん :01/08/27 21:50 ID:TcfqnVU.
>>838 Accept_Encodingにgzipを入れないと通常と(圧縮されていない)同じ
感じで送られてくるはず。(datもcgi経由も)
そうじゃないと、非対応ブラウザ(ネスケ3とか)だと見られなくなっちゃうし。
841 :
Delギコ :01/08/27 21:51 ID:rVnn8PnI
monazillaではピアツーピアするんですか? ちょっと乗り遅れてたりして… そもそもP2Pってまったくわかってなかったりして…  ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ∧ ∧ マターリ (,,゚Д゚)∫ / つ旦O 〜(__n n[ ̄ ̄ ̄.]  ̄ ̄ ̄
>>841 例えば2chに直接アクセスしなくても、○○さんのPC上にあるかちゅーしゃのデータと、
△△さんのPCのホットゾヌのデータを相互に交換できる、なんてイメージだね。
専用のキャッシュサーバ云々という人が多いみたいだが、何のことはない、皆が使ってる
2ちゃんねるブラウザは皆.datファイルをキャッシュしているのだよ。
あとはそれを相互に交換する仕組みがあったらもうp2pだ!
843 :
Delギコ :01/08/27 22:12 ID:rVnn8PnI
♪ ドン ドン ドン タカタッタ
∧ ∧ ,,──,−、 ♪
(,,゚Д゚) / (: :( ) ))
|つ/つ `ー─``ー'
〜| | ┣━━┫┨
U U ┠┤ ┣┫
やっぱ、そうか。
>>842 さんサンサンクス。
ツー事は、基本はネット経由の
チャット(?IM)システムが動けば
いいってことかな?
Indyで一撃でそういうのできないっすか?
と、知らないなりにテキトーニ逝ってみたりして。
844 :
age :01/08/28 00:04 ID:PAJsxV5Q
すみません。私、来週末Servlet+RDBの2ch を作ろうと思ってます。平日は残業が多いも ので。。。:-) Oracle使えば、負荷分散なんて無敵だと思う のですが(お金の問題はありますが。。)
gzipを展開して通してくれる串とか無いもんかね
そんな串があったら、hoge.tar.gzを落とすと展開されて返ってきたりしますが。
847 :
aki :01/08/28 02:57 ID:LkIGICBw
HTTPのヘッダ見てれば大丈夫じゃないのかな。 間違ってたらごめん。
848 :
Dax :01/08/28 08:24 ID:fgoXP6No
>>842 実はそんなのできたらいいなーって思ってたんですよ。
たとえばキーワード検索で、ローカルのDATだけじゃなく
たくさんのPCのDATファイルを検索する、、。大先生使えばいいか。。
>>841 Me too.
>>848 monatella(モナーテラ)プロジェクトついに始動か!?(w
グヌテラ見たいに遅い2chなんて俺イヤだよぅ
851 :
Dax :01/08/31 08:28 ID:aLgQGES2
852 :
Dax :01/08/31 08:30 ID:aLgQGES2
つづいて( ゚Д゚)ノ Delギコ猫のプログラミング相談室より。
勝手にコピペすんません>ヒロユキ@ギコナビ氏
648 名前:ヒロユキ@ギコナビ 投稿日:01/08/27 06:11
ちなみに、2ちゃんねるから取得した内容をファイルに保存するときには、
以下のコードを使用しています。(Indyが必要です。)
var
url: string;
ResStream: TMemoryStream;
begin
ResStream := TMemoryStream.create;
url := '
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501 '
idHTTP.Request.AcceptEncoding := 'gzip';
idHTTP.Get(url, ResStream);
ResStream.SaveToFile('c:\test.z');
end;
853 :
Dax :01/08/31 08:32 ID:aLgQGES2
gzip復元方法 (Delphi)。
( ゚Д゚)ノ Delギコ猫のプログラミング相談室よりコピペ。
679 名前:Dax@ホットゾヌ 投稿日:01/08/27 19:36
>647
私もDel付属のzlibを試したけどうまくいかんです。
で、
http://www.gewis.win.tue.nl/info/delphizlib/index.html ここのTGzipってコンポーネント使ってみたらなんとなくうまく逝った風です。
ファイル経由なんでかっちょわるいけど。。
procedure TForm1.Button1Click(Sender: TObject);
begin
Gzip1.FileSource := 'd:\test.z'; //
>>648 参照
Gzip1.FileDestination := 'd:\test.txt'; // 展開後のファイル
Gzip1.Gunzip;
Memo1.Lines.LoadFromFile('d:\test.txt');
end;
854 :
デフォルトの名無しさん :01/08/31 08:51 ID:Kp.31M12
注意してね。 It's spelled M-o-n-a-z-i-l-l-a, but it's pronounced "ギコ猫".
855 :
jtelaz :01/08/31 08:58 ID:txRKxROM
>>851 こんな情報もありました。ところで subject.txt の圧縮転送機能もつけて欲しいですね。
こちらは更新の度に全部取り直さざるを得ないし..
>450
?raw だとだめです。
?raw=0.0 ならうまくいきます。
(仕様です)
mod_gzipの入っているbbspinkでテストしてるのですが、 subject.txtはgzipで送られてくるのに、datは生で来 るのは鯖の設定なんですよね。
857 :
デフォルトの名無しさん :01/08/31 13:57 ID:FJ6U.z2k
>>856 圧縮する拡張子にdatを追加すればいいと思われ
つーかbbspinkってmod_gzipが入ってたですか。すばらしい。
確かに圧縮されたindex2.htmlが返ってくる…。
.htaccessに mod_gzip_item_include file \.dat$ と追加すればいいみたいだけどこれは設定してもらわない限り どうしようもない。夜勤さんの帰りを待とう。
それってかちゅーしゃは大丈夫なの?
gzipに対応していないものには今までどおり圧縮されていない ものを返すのでぜんぜん大丈夫です。
862 :
デフォルトの名無しさん :01/09/07 15:14
夜勤さん的には、ツール側の対応を先にしてもらいたいみたいです。
効果が顕著に現れるくらいシェアの高いツール(=かちゅ〜しゃ)が
対応しないと難しいですかね。
267 名前:名無しさんの声 投稿日:01/09/07 13:52 ID:zl1Zgn4M
bbspinkのdatを圧縮可能にする予定はありませんか?
ツールが対応すればかなりの節約になると思います。
http://www2.bbspink.com/.htaccess に
mod_gzip_item_include file \.dat$
という行を追加するだけです。
268 名前: ◆D69Zsbfg @夜勤 ★ 投稿日:01/09/07 14:13 ID:???
>>267 予定はありありです。
実験してみたいのですが、、、、、
ツールの作者の方々に、組み込んでいただかないと、
入れてみようかしら?
でも、転送量の観察をしたいので、ツールが組み込んだら、
教えてもらいたかったりします。
>>862 > 夜勤さん的には、ツール側の対応を先にしてもらいたいみたいです。
「A Bone」の委員長です。
対応は予定していますけど、実際にテストもせずにリリースするのは、
正直不安です。
やはり出来ればbbspinkだけでも良いですから、先にサーバー側で対応
してもらって、多少なりテストさせて欲しいですね。
> 効果が顕著に現れるくらいシェアの高いツール(=かちゅ〜しゃ)が
> 対応しないと難しいですかね。
言えてますね。(^-^;
今のところ対応してる(らしき)のは、2chブラウザとnavi2chと2ch-mode?
>>863 もどき板がmod_gzipに対応しているのでそこでテストしてみるのが
よろしいかと。
あとこれもご配慮願います。
242 名前:名無しさん 投稿日:2001/09/07(金) 16:23
送信エラーについては、「書き込みが終わりました」と
ダイアログを出すなど、とにかく自動リロードはしないように
してほしいです。
おそらく実況対策が仕様変更の理由の1つでしょうから。
>>865 もどき板ってどこにあるんですか?(^-^;
> 送信エラーについては、「書き込みが終わりました」と
> ダイアログを出すなど、とにかく自動リロードはしないように
> してほしいです。
> おそらく実況対策が仕様変更の理由の1つでしょうから。
自動リロードして欲しくないってのはどーしてなんでしょ?
一応最近の書き込み後の挙動が変わった事には対応済み
なので、自動リロードしてもエラーが出ないようにはなってる
んですけど。
どっか、「この板でテストしてみろ」という板があったら紹介して
下さいな。
もどきはこちら。
http://nh.mikage.to/nanika/ でもよく考えたらdatの圧縮には対応してないかも。
>自動リロードして欲しくないってのはどーしてなんでしょ?
それだけ連続で書き込みやすくなるからです。
ブラウザで書き込んでる人は最低5秒は待たされます。
あまりに連続で書き込みやすいような仕様にするのは
運営側の意図に反していると言えないでしょうか?
bbstable.html が bbstable1.html と bbstable2.html へのリンクに 変わってますな
bbstableの位置はユーザー設定できるようにするのが 望ましいと思われ
871 :
デフォルトの名無しさん :01/09/08 20:13
>>867 もどき板は了解しました。一度テストしてみます。
自動リロードについての意図は了解しました。
自主規制という意味ですね。
んー難しい問題ですねぇ。
確かに実況や荒らしなどを考えると、何らかの対策(自主規制)は
必要な気がします。
ただ自動リロードをしないという仕様はいささか不便なように
感じます。
例えば書き込み後、1分間は書き込み出来ないとかの方がよいかな?
あ、↑は私です。(^-^;
モナジラの皆さんにメール送りますー。
モナ板でぎこはにゃ〜んもgzipは対応してますよ
A Bone でカキコ
>>876 A Boneうまく動くことを祈る!
あ…逝ってくる♪
>>867 > もどきはこちら。
>
http://nh.mikage.to/nanika/ > でもよく考えたらdatの圧縮には対応してないかも。
mod_gzip入ってないっぽい・・・
HTTP/1.1 200 OK
Date: Sun, 09 Sep 2001 07:23:09 GMT
Server: Apache/1.3.20 (Unix) PHP/4.0.6 mod_ssl/2.8.4 OpenSSL/0.9.6b
Last-Modified: Sun, 09 Sep 2001 04:41:02 GMT
ETag: "e1c76-1efd4-3b9af2de"
Accept-Ranges: bytes
Content-Length: 126932
Connection: close
Content-Type: text/html
あ、そういえばサーバお亡くなりになって移転したらしいんで そのときmod_gzipが外れたのかも…
880 :
デフォルトの名無しさん :01/09/09 21:33
なにげに重大ニュース 934 名前: ◆D69Zsbfg @夜勤 ★ 本日のレス 投稿日:01/09/09 21:14 秘密というか、今の状態は暫定です。 dat とかその辺は、全面改修の可能性あり。 たぶん、dat 直読みはできなくなるでしょう。。。(多分だけどね、まだ決まっていない)
はじめまして、Unix板で navi2ch というものを作ってる者です。
委員長さんが、2chブラウザの作者さんやn_kiteさんのメールアドレスを確認されてますよね?
それって、
>>873 に関係ある事なんでしょうか?
一応 2ch 閲覧ツールを作ってる身としてなんとなく気になったもので。
それと顔出しついでに質問なんですが、Range ヘッダを付けてしまうと
Accept-Encoding での gzip 指定は無視されてしまいますか?
試してみたら圧縮されずに返ってきてしまいました。
>>880 read.cgi?row= とかで指定して取ることになるんですかね。
>>881 mod_gzipでは無視されます。
というかHTTPの仕様上差分取得時にgzip圧縮するのは
困難です。
1レスしか取ってなくて998レスの未取得がある場合には、
捨てて全部取り直したほうが節約できると思われます。
>>882 そうですか、素早い回答ありがとうございます。
どのくらいの 取得数/レス数 なら全部取ってくるかの判断が結構重要っぽいですね。
まえもどっかでかいたけど、要するに、「rangeとgzipの両方とも有効なら、
どっちが先行するかわからない」ってこと。
dat.gzを途中からなのか、
datの途中からを圧縮するのか。
だから、mod_gzipはさじなげて、圧縮しない。
>>881 とりあえず、委員長さんにメールでも出してみられては?
わからなくはないです。dat.gzを途中からとちゃんと 決められています。 ただそれだと差分取得がほとんど不可能になるので、 mod_gzipがさじを投げるという結論は変わりませんが。
888 :
デフォルトの名無しさん :01/09/12 18:54
WinCE版2chぶらうざ作ってるものですが・・・ 改定されてから、bbstableからの板一覧取得が難しくなってませんか?(^^; 前は”index2.html”で終わるものだけ対応にしてたんですが。 やっぱり、鯖名から判断して取り込んでるんでしょうか?
>>888 「A Bone」の委員長です。
私の場合は、
"2ch.net"と"www2.bbspink"があれば板とみなす。
手動で追加された物に関しては全て板とみなす。
という感じでやってます。(もう少しウザったいけど)
最近はニュース板が増えて、2ch.netぢゃないから大変に
なってきましたね。
少しは協力してくれ(涙)>2ちゃんねる
>>889 なるほど、やっぱそんなもんですか(^^;
結局、僕の場合は
2ch.net/が含まれており、その後に”/”が一個しかなく、その”/”で終わってるもの
またはbbspink.comが含まれる。
にしてます。
ホットゾヌ のソースダウンロード不能の模様。復旧求む
894 :
デフォルトの名無しさん :01/09/14 16:02
せっかくだからあげとくか
895 :
デフォルトの名無しさん :01/09/14 16:18
zlibについてなんですけど・・・ gzip化したデータを受けとってメモリに保存、そのまま展開って 出来ますか? zlibのheadercheckのソースやRFCを参考にヘッダを飛ばして inflateかけてやろうとするとエラーになってしまうんですよね(^^; 仕方ないので一回保存してからgzreadで取り込んでますが。 #とりあえずISIZEフィールドは先頭のほうに置いておいて欲しかった(^^;;
おそらく、InflateIniteの使い方が間違っている気がします。 zlibのgzio.cや、ぎこはにゃ〜んのソース http/gzip.cpp あたりをみればいいかと。
>>896 あれれ・・・つまり、inflateInitじゃなくてinflateInit2を使えと・・・
ただそれだけのことだったんですかね(^^;
後でやってみます!
どもどもでした!
899 :
デフォルトの名無しさん :01/09/18 14:07
Ahhan ! BBS Ver 2.53 に対応したものを求む。
900 :
はじめての名無しさん :01/09/19 13:38
すれちがいならすいません。 今作ってるソフトに簡易2ちゃんブラウザみたいなのを 付けようと思ってますが、DATが取得できませんー。 やっぱHSPじゃダメっすか…?
HTTP関連アプリで助けを求めるなら、どんなHTTPリクエストを送って、 その結果、帰ってきた応答が、自分の予期していたものとどう違うのか、 くらいは、きちんと書かねば何ともいえません。 最悪、ソースを全部Webに揚げて、「何とかしてくれ」と泣きつけば、 ひょっとすると親切な人が何とかしてくれるかもしれませんが。
903 :
名無しさん :01/09/19 15:05
今HSPを落としてサンプルのHTTPクライアントでやってみたけど pizaは確かにNotFoundなんだけどmentaiやsakiからは取れるみたいですよ。 pizaがダメな理由はよくわかりませんが。
Hostをつけていないという落ちじゃないだろうな
あの、モナジラBBSの方にも書いてしまったのですが、 現在、datファイルの取得や表示は出来るようになっ たのですが書き込みの方法がサッパリ分かりません。 御教授願えないでしょうか。 なお、当方の開発環境はWindowsでは無いため一般的な 概要を御教え頂ければありがたいです。 なにとぞ宜しくお願いします。m(_ _)m
909 :
デフォルトの名無しさん :01/09/23 09:54
スミマセン。 二重書き込みになってしまった。
TIMEが違う?
とりあえず、どんなエラーメッセージがでたのか書いてもらわないと‥‥ たぶん、UserAgentとかAccept-*なんかをIEのまねして送るってみたり すると、書き込めるかも。 ちゃんと書けるプログラムのソースみるとか
914 :
デフォルトの名無しさん :01/09/23 13:51
URLエンコードは? あと、Content-Lengthってヘッダの長さは含まないでしょ?
ていうかそもそもPOSTってなんだかわかってる?
あんまり変なことして2chに悪影響与えないでよ>906
917 :
デフォルトの名無しさん :01/09/24 08:14
httpヘッダはそれだけじゃないからね。 ひととおり全部送りなはれ。 そこまでやっても、リモホのアドレスではじかれるかもしれないが。 bbs.cgiの仕様もよく変わるんで今がどうなってるか分からないが、 ある時期Acceptが無かったらはじかれた記憶があるな。
レスいただいた皆様有り難う御座いました。 特に、915さん。POSTについてもう一度 勉強し直してみると、書式が全然違う事に 気が付きました。何とか書き込めるように なったようです。 皆さんお騒がせしました。 有り難う御座いました。 自分なりに分かったことを纏めて書いた方がいいですか? 取り敢えず、これからまとめてみます。 本当に有り難う御座いました。m(_ _)m
書き込みたい内容。 >
HTTPのメソッドを使って2chに書き込みをするには、
下記のようなリクエストを送信してやるといいみたいです。
>POST
http://piza2.2ch.net/test/bbs.cgi http/1.1[CRLF]
>Host: piza2.2ch.net[CRLF]
>Referer:
http://piza2.2ch.net/tech/index.html[CRLF] >User-Agent: hoge 0.1b[CRLF]
>Accept: text/plain[CRLF]
>Accept-charset: shift_jis[CRLF]
>Accept-Encoding:[CRLF]
>Content-Length: 113[CRLF]
>[CRLF]
>submit=書き込む&FROM=お名前&mail=メールアドレス&MESSAGE=書き込みたい内容。
>&bbs=tech&key=981726544&time=1001309581[CRLF]
ポイントとしては、まあ、当たり前のことばかりですが。
1. リクエストとエンティティボディの間にCRLFを送ってやること。
2. Content-Lengthでは正確なエンティティボディのサイズを送ってあげること。
お騒がせしました。 そして、有り難う御座いました。
あ、POSTなのにマジでURLの後ろにデータをくっつけていたのか。 あれは例えの話なんだと思って見ていた。
924 :
ヒロユキ@ギコナビ :01/09/24 23:35
>>923 昔、俺がURLエンコードしなきゃだめ!って言ったような
気がするんだけど、しなくても、OKみたい。
あと、関係ないけど、ダメ人間から戻る薬ないですか?
URLエンコード、せっかく作ったのになぁ・・・・ しかも間違ってたし(笑)
926 :
ヒロユキ@ギコナビ :01/09/25 01:48
>>925 ん?Delphiですか?Delphiだったら標準であるよ。URL援交
どっちにしろ、いらないんだけど。。。
それより、GZIPをファイルに落とさないで復元するクラス
どっかに落ちてないかな?
>922 お恥ずかしい。 >923 URLエンコードはしなくても今のところ問題ない見たです。
>>926 いや、SDKベースのVCっす
ネットもwinsockベースで全部自作で進めてます(笑)
Gzipをメモリ上で展開するのは簡単ですよ。
てか、教えてもらったんだけど(笑)
>>895 -897辺りで
zlib1.1.3のcontrib\delphi2に入ってるzlib.pasのTDecompressionStream これそのままだとdelfate onlyでzlib header必須になるけど constructor TDecompressionStream.CreateNoHeader(Source: TStream); begin inherited Create(Source); FZRec.next_in := FBuffer; FZRec.avail_in := 0; DCheck(FZRec, inflateInit2_(FZRec, -DEF_WBITS, zlib_version, sizeof(FZRec))); FEof := false; end; こんな調子のconstructor作ってgzip対応して使ってる
gzip.pasって自作して使ってるけど、どっかにアプできる場所ある? 中身はこんなのだけど > TGzipDecompressStream = class(TStream) 〜 > public > constructor Create( dest: TStream ); > function Write(const Buffer; Count: Longint): Longint; override; > function Read(var Buffer; Count: Longint): Longint; override; > function Seek(Offset: Longint; Origin: Word): Longint; override; > destructor Destroy; override; > property Header: TGZipRecord read FHeader; > end; > procedure gzDecompress( in_stream: TStream; var dest:TGzipRecord ); > procedure gzCompress( const src:TGzipRecord; out_stream: TStream );
936 :
ヒロユキ@ギコナビ :01/09/25 23:18
>>929 薬期待してます。
今日も一日ボケェー(´д`)っとしてたよ。トホホ。
>>935 スゴスゴー!
使わさせてもらって良いですか?
>>936 public domain状態でばんばん使ったりいじったりしてくださいー
>>931 usesしてる"crc"がみつからないですー
940 :
ヒロユキ@ギコナビ :01/09/30 03:36
>>931 組み込んでみました。バッチリ動いてます。
しかし、gzip対応にするとダウンロード速いね。
サクサクダウンロード出来て快適。
931さんに感謝。
test
test test
test test test
TESUTO
947 :
デフォルトの名無しさん :01/10/04 21:19
age
948 :
デフォルトの名無しさん :01/10/08 23:38
次スレはあるのかな?age
949 :
himajin2908 ◆hiMA.Vv6 :01/10/11 21:48
950 :
デフォルトの名無しさん :01/10/18 12:22
インテリフォームが気になって、ショートカッツのソース見てみたいんですが、 アーカイブが無いようです。 再アプキボーンヌ。
>>951 サンクス!!対応ハヤスギ!
さて、早速参考にしよう。
953 :
デフォルトの名無しさん :01/10/23 19:20
2chのレス取得用のクラスライブラリ見たいのがあるんですか? で、それ使うと簡単にブラウザ作れるんですか?
954 :
デフォルトの名無しさん :01/10/24 07:06
何の知識もない全くの素人が参加するのって無謀ですか^^;? マカーでREALbasicで0から制作してみたいです。 (ダウンロードしたばかりでまだ使い方さえわかっていない状態;) ネタじゃなく本当に「プログラムって何さ?」レベルなんですが…
昔ほどの活気がないですね。 turbo type Dさんとか帰ってこないのかなー。
>>955 漏れは最近モナヂラでヘボいものを開発しはじめた人なんだけど
このスレ初期の頃は楽しそうだったよね。。。
このスレROMっててワクワクしてたし(藁
今は、なんかモナヂラで何かしようって動きは無いみたいで
活気がないのは仕方ないかなって思ってる。
>>953 Delphi用にはMonaUtilsとか使えば簡単に作れる…のかな(詳しいことは知らないのでスマソ
特にDelphiが読めるなら、オープンソースでいくつかでてるもののソースを参考というか、パクってみれば大体わかるかも。
monazilla.org(wには一部古いけど2ch用ブラウザ作るための資料もあるし。
monazilla.org(w
ttp://members.jcom.home.ne.jp/monazilla/ >>954 全くの素人っていうのが、プログラミングも素人ってことなら
参加は拒まれないと思うけど、
正直、いきなり2ch用ブラウザは難しいと思う。
漏れもよくわかってないし(漏れが厨房だからか。。。鬱
マクモエとかはREALBasicで作られてるみたいだけど
さいとう(仮)さんもなかなか苦労してるみたいだし、
REALBasicだから簡単というわけでもなさそう。
最初はブラウザコンポーネント(とかあるのかな)使って
もっと簡単なアプリからつくってみるのがいいと漏れは思う。
活気かぁ、最近活気がないと言われれば、確かに否定は出来ないなぁ。 とは言え、メンバーが飽きてきたって訳ではないですよん。 まぁ、2ちゃんねる用ブラウザを開発するにあたっての、必要な情報や 主な手法などは出尽くしたとは言わないが、それなりにこなれてきて、 各開発者は各自のツール作成に専念しているということでしょう。 このでの発言数は劇的に減ってはいるけど、各ツールが順調に 更新されている事からもそれは分かるかと。 ブラウザを簡単に作れるか?と聞かれると、貴方の能力による としか 答えようがないのは、厨房もじらー氏のレスの通り。 DelphiやC++Builderなど、IEコンポーネントが事前に用意されている 開発環境で作るなら、テキストの処理やHTTP通信処理が出来れば、 まぁ一応は作れます。 ただ、フリーウェアとして公開するとかまで考えてのことなら、IEコンポーネント を直接制御する方法とか、マルチスレッド、タブ型ブラウザにしたいなら、 複数のスレッドを同時に開いて切り替えたりするので、板とスレッドの アクティブ管理など、かなり複雑になってきます。 これは作ってる私の正直な実感として、会社員なら仕事中でも開発出来るとか 学生なら就職活動はまだ先で遊びまくれる時期だとか、そういうかなり 時間にゆとりのある人でないと、無理があるんぢゃないかなぁ。 2ちゃんねるブラウザの場合、目的とするソフトを開発する技術はもちろん、 日々変更される2ちゃんねるの仕様を追いかけて、それに対応しなきゃ いけないからね、これが一番大変だったりするのよ(笑)。 厨房もじらー氏の薦められているように、取りあえず超簡単なブラウザを ひとつ作ってみて、それが出来たら、ちょろっと2ちゃんねるを表示する ようにして、そうやってお遊びペースで進めてみて、それなりの物が出来たら このスレッドや、monazillaサイトのBBSなりで、「ここまで出来たから、 テストきぼん」とソフトをお披露めしてみてはいかがかな? その時は喜んで人柱役をやらせて頂きますよ。
>>955 >昔ほどの活気がないですね。
> turbo type Dさんとか帰ってこないのかなー。
ある程度2ちゃんねるの仕様も分かって、
ロジック的においしいとこはほとんど解明しちゃいましたからね、
こっちは活気が無くなっちゃいましたが monazilla BBSの方では
Moz2chさんなどが開発頑張ってますよ!
もっともっと開発スレが増えることを期待しています。
Delphi 6 Personal や Kylix Open でつくる人いないのかな?
959 :
デフォルトの名無しさん :01/11/06 20:12
次スレだれか立ててよ。
∧,,∧ / ̄ (,,,,,,,ミ,,゚Д゚彡 < フサフサです ⊂,,,,,,,,,つつ. \_ こんにちは。 何か独立性の高いライブラリの要望とかありましたら 【簡単なものなら】手伝えますよ。 簡単なものなら、みなさん作っちまうという難点はありですが… オープンソースの分業って難しいですかね。 世界のオプソはどうやって分業しているのかな。
read.cgiの改良はオープンソースモデルのようになってるね。 cvs鯖立てて、参加者全員が自由に改造できることにして スレで議論しながら軌道修正してゆく。
そろそろ2chブラウザ「monazilla」をcvs公開して みんなで開発ってのはどう?
cvsって使った事ないけど、
鯖があればつかってみたいね。
monazilla.org(wには現在mozilla.orgに対するMozillaのようなものはないよね。
>>962 が言ってるようなモナヂラって
作るとしたらやっぱDelphiになっちゃうのかな。。。
6 Personalはタダだし、できなくもないけど
漏れのテリトリーじゃないからちょっと寂しいのでsage
>960 おおお!Delフサギコさん! ここはいっちょ DelPerでオプソブラウザをちょちょいっと! >962 それいいですねー。 なんか誰か率先してやってくんないかなー、、(他力本グァン >963 Delphiだけでなく いろんな言語で実装できたら面白いかも。
>964 名前忘れてた。
>>965 DelphiクラスやC++クラスにCOMインターフェイスくっつけてやれば
いろんな言語でまたーり開発できると思われ。
でも、面倒なので誰もやらない、かな。。。
967 :
デフォルトの名無しさん :01/11/09 14:13
age
まもなくここは 乂1000取り合戦場乂 となります。 \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/ //三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ∪ ∪ ( ) ( ) ( ) ) ,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ,,、,、,,, ( ) ( ) ( ) ( )
廃棄スレをsageでも書き込むなよ…
972ゲット!!
おれが1000getしてやる
何かトリップつけるか とりあえず何かのトリップ検索中
◆KmmmmmxE ◆WWWWWDBI どっしにすべきか・・・
これにして1000目指すか
さて続けるか
なんか連続カキコですっていわれそうだな
書くネタないな
AAでも張るか
とりあえずこのスレの提供は 提 供 /\ \/ / ̄/\ ̄\  ̄ ̄  ̄ ̄ Heart-Beat Motors 三 菱 自 動 車
提 供 DAIHATU 大塚製薬 KIRIN PlayStation 2ch の提供でした
___ . |(・∀・)| . | ̄ ̄ ̄ ジサクジエン共和国 △ △l | __△|_.田 |△_____ |__|__門_|__|_____|_____ これははっとかなきゃな
●● ●● ● ● ● ● ● ● / \ ● ● ● ● ● ● / \ ● ●● ●● ● ● ● _____ ● ● / ● ●●●●●● ● ヽ ● ● ● ● / ● ● ● ● / ● ● ● ● ● ● ● ● / ̄ ̄\ ● ● ● ● | | ● ● ● ● \ / ● ● ● ● / ● ● ● ● | ● ●●●●●●●●● ● ● ● ● ●
|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|| || おにぎり /■\ はい、みんなで♪ || ワショーイ \ (゚ー゚*) ||________⊂⊂ | /■\ /■\ /■\ | ̄ ̄ ̄ ̄| / ( /■\ ( /■\ ( /■\ |おにぎり | / 〜(_( /■\ __( /■\__( /■\ ̄ ̄ ̄ おにぎり♪ 〜(_( /■\_( /■\_( /■\ 〜(_( ,,)〜(_( ,,)〜(_( ,,) ワショーイ♪ 〜(___ノ 〜(___ノ 〜(___ノ
、 ζ , _ ノ ( ( (. ) ` . -/■\ . .´,.::;(´∀`A) `. i ヾ<:;_ー-ーー,.ン | l  ̄...:;:彡| /■\ } . . ...::::;:;;;;;彡{ ( ´ )-`) i . . ...:::;;;;;彡| ,つ ⊆) } . .....:::;::;:;;;;彡{ , :´ `"~. `、 !, . .:.::;:;;;彡j:::::::::::::::....... . . ' . ; .丶 ト , . ..,:;:;:=:彳:::::::::::::::::::::::::::.. . ,:´ . ' ' `、 ヽ、.. ....::::;;;ジ.:::::::::::::::::::::: ,' . 簍?J鶸鑼 ; `.  ̄ ̄ ワッチョイ ,, -'''" . . 駲刪櫑躪 . ' ';゛`'丶.、....... / ■ヽ ワッチョイ . '´ ! . 膚順棚斷. ' , ;::::::::::::...`.::::::::.... (д・*∩ )) i ヽ、..._,.__魎鬱蹠撫.,,__,.,..ノ.::::::::: !::::::::::::... (( (⊃ 丿 . ヽ、 ,: '.::::::::: (__)し' `=ー--、....,,,,,______,,,,,... --‐=''´..:::::: ``" '' 'ー───‐―‐' ''' "´
ガンバレー
、 ζ , _ ノ ( ( (. ) . -‐ ) ‐- . .´,.::::;;:... . . _ `. i ヾ<:;_ _,.ン | l  ̄...:;:彡| } . . ...::::;:;;;;;彡{ i . . ...:::;;;;;彡| ,: ' " `丶 . } . .....:::;::;:;;;;彡{ , :´ . `、 !, . .:.::;:;;;彡j:::::::::::::::....... . . ' . ; .丶 ト , . ..,:;:;:=:彳:::::::::::::::::::::::::::.. . ,:´ . ' ' `、 ヽ、.. ....::::;;;ジ.:::::::::::::::::::::: ,' . 鬱鬱鬱鬱 ; `.  ̄ ̄ ,, -'''" . . 鬱鬱鬱鬱 . ' ';゛`'丶.、....... . '´ ! . 鬱鬱鬱鬱. ' , ;::::::::::::...`.::::::::.... i ヽ、..._,.__鬱鬱鬱鬱.,,__,.,..ノ.::::::::: !::::::::::::... . ヽ、 ,: '.::::::::: `=ー--、....,,,,,______,,,,,... --‐=''´..:::::: ``" '' 'ー───‐―‐' ''' "´
げみつかった
| すみません | 987のとなりでワッショイしてもよろしいですか? \___ ____________ ∨ __∧_∧__/■\____ | ( ;´∀`) (´∀` ) .| | ( ) ⊂ ) | / ̄( ( (  ̄( ( (  ̄ ̄/| || ̄ (_(_) ̄(_(_) ̄ ̄|| ∧ / ̄ ̄  ̄ ̄ ̄ ̄\ | (エッ!!) | | ど、どうぞ・・・・ |
おにぎりワッショイ!! \\ おにぎりワッショイ!! // \\ おにぎりワッショイ!!/ + + + /■\ + __∧_∧__ (´∀`∩)__ + | (´∀`; ) (つ 丿 )) | | ( )(( ( ヽノ .| / ̄( ( (  ̄ ̄し(_) ̄ ̄/| || ̄ (_(_)  ̄ ̄ ̄ ̄ ̄ ̄ || ∧ / ̄ ̄  ̄ ̄\ | ・・・・・・・・・ |
あと少しだ
改めて1000へ
今になって2重書きこって言われた
もしかして
1000
get
ですか?
(゚Д゚)ハァ?
俺逝ってよし
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。